解耦基本方法

step1:通过依赖倒置实现单向依赖

A依赖于B,胜过A/B互相依赖。

step2:从开发视图来定义规则

A依赖于B,B提供lib和头文件。

lib:静态库优于动态库。

头文件:1)除系统&平台,无其他依赖。2)数据结构和函数定义功能单一,接口稳定。

step3: 接口设计原则

参考文档1:《how to design a good api and why it matters》

参考文档2:《面向对象设计的五个基本原则》

参考文档3:《接口设计的核心原则:功能抽象》

时间: 03-31

解耦基本方法的相关文章

对象设计解耦的方法IOC和DI

耦合关系不仅会出现在对象与对象之间,也会出现在软件系统的各模块之间,以及软件系统和硬件系统之间.如何降低系统之间.模块之间和对象之间的耦合度,是软件工程永远追求的目标之一.为了解决对象之间的耦合度过高的问题,软件专家Michael Mattson提出了IOC理论,用来实现对象之间的“解耦”,目前这个理论已经被成功地应用到实践当中,很多的J2EE项目均采用了IOC框架产品Spring. 面向对象的核心思想简单来说就是把复杂系统分解成相互合作的对象,这些对象类通过封装以后,内部实现对外部是透明的,从

httpclient获取响应实体和信息的封装方法(解耦更新)

转自:https://blog.csdn.net/fhaohaizi/article/details/77850302 2018年07月19日更新,主要是解耦之后方法很多地方发生了变化,httpclient用了连接池方式,作为一个静态变量处理,请求头和响应头以及cookies设置都有了相关处理方法,本来这个方法已经快超过100行了,解耦之后分成了几个小方法,方便修改和调试.分两部分,一部分是框架,只做了公共处理,另外一部分是每个项目的base类需要重新实现一些这个方法来处理header信息以及需

从传统软件工程到敏捷开发之我们到底需要什么样的方法

软件工程是上世纪七十年代提出来的概念,面对开发程序的规模越来越庞大,用户的需求越来越复杂等挑战,提出将软件开发工程化的概念,传统的软件开发方法有瀑布模型.螺旋模型.喷泉模型.RUP四类,它们注重文档的完整,程序的易读性,结构的完整性,属于重型软件开发方法.在过去的一段时间,传统软件工程的方法很好的适应了软件开发的需求,传统软件工程不仅关注软件构造方式的完美型,同时也注重总体的可预测性,以文档为驱动,按照需求分析.概要设计.详细设计.编码.测试.软件交付的流程来进行开发.在软件产业不是很发达.软件

[设计模式] 耦合和解耦的概念解析

耦合就是两个层之间有依赖关系?==同一个层也可能有依赖关系 看见有解耦的方法就是在相互依赖的两层之间加一层,可是新加的一层不是又和原来的两层有耦合关系了吗?==解耦的方式是让设计依赖于抽象,而不是依赖于实现,看看设计模式的原则 到底什么是耦合??==A明确地使用B资源 publci class A { B b; } public class B { } 现在A依赖于B interface IX { ... } public class A { IX i; public A(IX i) { thi

工厂模式:简单工厂模式、工厂方法模式和抽象工厂模式

我们一般制造对象时,采用操作符new来进行创建.但是慢慢我们了解到实例化这个活动不应该总是公开地进行,同时初始化还经常造成"耦合"的问题. 如果我们不希望出现上述问题,那么我们就有必要认识一下"工厂模式",它将有助于我们从复杂的依赖中解脱出来. 1)为什么说"new"不好? 当看到"new",就会想到"具体". 我们不应该总是针对实现编程,但是当我们每次使用new时,正是在针对实现编程而不是接口,这很不符合

java分层

一.为什么要分层. 以前的我们,写代码的时候,都在main()方法中,出现了错误,就慢慢调试,这样浪费了我们很长的时间,而我们程序员的时间是非常宝贵的 但是当我们使用分层架构的时候,就可以清晰明确的知道错误出在哪里,或者在公司中,基本都是使用分层架构的,因为那样可以分离我们程序员的 关注,更为简洁. 二.分层带来了哪些好处. 其实带来了很多好处,首先,方便维护和分离关注点,就不谈了. 1.便于更改或替换. 先说说便于替换或者更新,我现在用的数据库是SQLServer数据库,如果我需要 将数据库更

EJB开发第一期---EJB开发配置

一.EJB 3.0简介 1.1 什么是EJB Enterprise JavaBeans是一个用于分布式业务应用的标准服务端组件模型.采用Enterprise JavaBeans架构编写的应用是可伸缩的.事务性的.多用户安全的.采用ejb编写的这些应用,可以部署在任何支持Enterprise JavaBeans规范的服务器平台,如jboss.weblogic等. EJB实际上是用于编写业务层代码.如果大家对于MVC (model-view-controller)结构的应用有所了解的话,我们知道一个

设计模式大全

Longronglin之设计模式: Christopher Alexander 说过:“每个模式描写叙述了一个在我们周围不断反复发生的问题,以及该问题的解决方式的核心.这样,你就能一次重新地使用该方案而不必做反复劳动”. 模式描写叙述为:在一定环境中解决某一问题的方案,包含三个基本元素--问题,解决方式和环境. 阅读类图和对象图请先学习UML 创建模式 结构模式 行为模式 创建模式:对类的实例化过程的抽象.一些系统在创建对象时,须要动态地决定如何创建对象,创建哪些对象,以及如何组合和表示这些对象

事件驱动

事件驱动——有事我叫你,没事别烦我 劳心者治人 , 劳力者治于人                                            ——<孟子·滕文公上>   关键词:编程范式 , 事件驱动式 , 回调函数 ,framework,IoC,DIP, 观察者模式 摘要:事件驱动式编程简谈 ? 提问 什么是事件?有哪些不同类型的事件? 什么是回调函数?什么是异步同调?它们有什么用处? 控制反转的目的是什么?它是如何实现的?在框架设计中起什么作用? 控制反转.依赖反转原则和依赖注射