设计模式基础知识
高内聚/低耦合
高内聚:
内聚就是一个模块内各个元素彼此结合的紧密程度。
高内聚就是一个模块内各个元素彼此结合的紧密程度高。
就类而言,一个类只处理一件事情,类中的属性和方法只与处理的这件事情相关;
就模块而言,一个模块只处理相近或者相关的功能。
也就是单一职责。
低耦合:
耦合就是一个软件结构内不同模块之间互连程度的度量。也就是不同模块之间依赖的程度。如果一个模块的修改就会影响另一个模块,这两个模块就是高耦合。
模块之间存在数据交互,所以模块之间的耦合必然存在,我们可以通过设计来降低耦合度,但不能消除耦合。
模块间的依赖可以传递,我们可以通过转移依赖来降低耦合;也可以分离关注点来降低耦合。
面向对象思想的三大基本特征
一、封装性
封装就是将事物的特性和行为抽象成类的属性和方法,类中属性和方法配合实现相关功能,通过访问修饰符public/protected/private来控制对类的属性和方法的访问,隐藏客户程序不必要关心的属性、方法及功能的实现,公开客户程序关心的属性和方法,实现信息的隐藏。
二、继承性
继承是一个事物拥有另一事物所有的特性和行为,此事物还具有自己独有的特性和行为。也就是派生类可共享基类所有的属性和方法,从而实现了代码的复用。
继承有接口继承和实现继承两种:接口继承是派生类需要重写覆盖基类的虚方法。实现继承是派生类直接使用基类已经实现的方法。
三、多态性
多态即多种形态,主要体现在两个方面:
一方面是基类与派生类之间,派生类可以重写覆盖基类的虚方法,使得同一方法在基类和派生类表现出不同的行为;
另一方面是在一个类内部,同名方法的重载。
面向对象设计的五大基本原则
一、单一职责原则 (SRP:Single Responsibility Principle)
单一职责就是一个类只处理一件事情,类中的属性和方法只与处理的这件事情相关;一个模块只处理相近或者相关的功能,不包括其他功能的实现。
二、开放封闭原则 (OCP:Open-Close Principle)
开放封闭就是对扩展开发,对修改封闭。换句话说就是允许变化,通过新增实现变化,而不是修改原系统。
三、Liskov替换原则 (LSP:Liskov Substitution Principle)
李氏替换是派生类可以替换基类,就是用基类的地方都可以用派生类替换。
就像正方形和矩形的关系,正方形是特殊的矩形,正方形是矩形派生的,在用矩形的地方都可以用正方形。
四、依赖倒置原则 (DIP:Dependency Invertion Principle)
依赖倒置是相对于结构化设计而言的。
面向对象设计的依赖思想是依赖相对稳定的对象,如:依赖接口或者抽象类,因为接口和抽象类比实现类稳定。
就类而言,具体类依赖抽象是实现抽象,客户类依赖抽象是调用抽象。
就模块而言,底层模块依赖抽象是实现抽象,高层模块依赖抽象是调用抽象。
五、接口分离原则 (ISP:Interface Separate Principle)
接口分离是指接口功能的分离,每个接口只负责相似或者相关的功能。也就是接口职责单一。
设计模式总思想:分离稳定部分和变化部分,抽象封装变化部分,实现模块间的松耦合。
设计模式系列目录
一、创建型模式
二、结构型模式
1、结构型模式之适配器模式
2、结构型模式之桥接模式
3、结构型模式之组合模式
4、结构型模式之装饰模式
5、结构型模式之外观模式
6、结构型模式之享元模式
7、结构型模式之代理模式
三、行为型模式
1、行为型模式之职责链模式
2、行为型模式之命令模式
3、行为型模式之解释器模式
4、行为型模式之中介者模式
5、行为型模式之迭代器模式
6、行为型模式之观察者模式
7、行为型模式之模板方法模式
8、行为型模式之备忘录模式
9、行为型模式之状态模式
10、行为型模式之策略模式
11、行为型模式之访问者模式

浙公网安备 33010602011771号