一、高内聚低耦合
1、耦合:耦合是指程序设计各模块之间的依赖关系,包括控制关系、调用关系、数据传递关系,依赖越紧密,耦合就越大,如果功能发生变化,要修改的模块就不仅仅是当前模块,还可能牵扯到耦合的模块,这样维护成本就很高,所以我们在设计代码的时候应当遵循低耦合的原则。影响耦合的因素也就是:
(1) 一个模块对另一模块的调用
(2) 一个模块向另一个模块传递的数据的多少
(3) 一个模块对另一个模块的控制的多少
(4) 模块之间接口的复杂程度
2、耦合从低到高可以分为一下几种类型:
(1)非直接耦合:两模块之间没有直接关系,其模块间的依赖完全是有主模块的控制和调用来实现。
(2)数据耦合:一个模块访问另一个模块,彼此之间通过简单的数据参数来交换输入、输出信息,这里的简单参数不同控制参数、公共数据结构或外部变量。
(3)标记耦合:如果一组模块通过参数表来传递记录信息,就是标记耦合,这一记录是某一记录的子结构,不是简单数据。
(4)控制耦合:一个模块通过传递快关、标志、名字等控制信息,明显的控制选择另一模块的功能。
(5)外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数传递该全局变量信息
(6)公共耦合:一组模块都访问同一公共数据环境,该数据环境可以是全局的数据结构、共享的通信区、内存的公共覆盖区等。
(7)内容耦合:一个模块直接修改另一模块的数据,或直接传入另一模块。
内聚:内聚是模块的内部各元素之间联系的紧密程度
1、内聚度从低到高分为7种:
(1)偶然内聚
(2)逻辑内聚
(3)瞬时内聚
(4)过程内聚
(5)通信内聚
(6)顺序内聚
(7)功能内聚
二、设计模式六大原则:
1、单一职责原则(SRP):
定义:就一个类而言,应该仅有一个引起它变化的原因。
2、开闭原则(OCP):
定义:软件中的对象(类、模块、函数等)应该对于扩展是开放的,对于修改是封闭的。
3、里氏替换原则(LSP):
定义:所有引用基类的地方必须能透明使用其子类的对象。
4、依赖倒置原则:
定义:抽象不应该依赖细节,细节应该依赖抽象。
5、接口隔离原则(ISP):
定义:客户端不应该依赖它不需要的接口(类之间的依赖关系应该建立在最小接口上,接口隔离原则将非常庞大臃肿的接口拆分为更小的和更具体的接口)
6、迪米特原则(LOD):
定义:也称最少知识原则,一个对象应该对其他对象有最少的了解
三、设计模式总体归为三大类:
1、创建型模式(5种):单例模式、建造者模式、工厂模式、抽象工厂模式、原型模式;
2、结构型模式(7种):适配器模式、桥接模式、装饰模式、组合模式、外观模式、亨元模式、代理模式;
3、行为型模式(11种):观察着模式、访问者模式、中介者模式、策略模式、解释器模式、命令模式、迭代器模式、备忘录模式、责任链模式、模板模式,状态模式;
网友评论