Design Pattern
Posted nedrain
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Design Pattern相关的知识,希望对你有一定的参考价值。
7 principles to design the Design Pattern
单一职责(Single Responsibility Principle)
一个类或者一个方法只负责一项职责
接口隔离(interface segregation principle)
建立单一接口,扩展为类也是一种接口,一切皆接口,客户端不应该依赖它不需要的接口;
,类之间依赖关系应该建立在最小的接口上;即:复杂的接口,根据业务拆分成多个简单接口;
开闭原则(open closed principle)
对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码
迪米特原则(law of demeter LOD)
最少知道原则,尽量降低类与类之间的耦合;一个对象应该对其他对象有最少的了解
再简单点:只与直接朋友进行通信
直接朋友: 对于一个类,成员变量、方法参数、方法返回值为直接朋友, 局部变量不是。
里氏替换原则(LSP liskov substitution principle)
子类可以扩展父类的功能,但不要重写父类的方法,以保证父类可以无障碍调用子类的方法。实在想重写就用“聚合、组合、依赖”来代替。
依赖倒置原则(dependence inversion principle) (The dependency here means use a class or an interface in your method)
这个是开闭原则的基础,具体内容:中心思想为面向接口编程,依赖于抽象而不依赖于具体
高层不就依赖低层, 它们都应该依赖其抽象
合成复用原则 (composite reuse principle)
尽量使用 组合、聚合 的方式而不是继承。
Relationship
dependency
Use you as a parameter in my method.
public class A{ // class A has dependency on 3 Interfaces
public void depend1(Interface1 i){
i.operation1(1);
}
public void depend1(Interface2 i){
i.operation2(1);
}
public void depend1(Interface3 i){
i.operation3(1);
}
}
aggregation
class B{
A a;
}
composition (when class B is constructed, A is constructed insides B.
class B{
A a = new A();
}
Three ways to use Dependency
- Through an Interface
- Through a Contructor
- Through a setter()
以上是关于Design Pattern的主要内容,如果未能解决你的问题,请参考以下文章
[Design Pattern] Facde Pattern 简单案例
[Design Pattern] Factory Pattern 简单案例
[Design Pattern] Service Locator Pattern 简单案例