文章目录
汇总
最近复习完了23种设计模式,也算是都过了一遍。参考其他网上资料对23种设计模式进行一下汇总总结吧。
分类
23种设计模式可分为3大类。
创造型
结构型
行为型
- Chain Of Responsibility
- Command
- Intepreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor
面向对象的六大原则
对于面向对象的指导思想:
- 可维护性 Maintainability
- 再修改功能的过程中 ,修改的地方越少,可维护性就越高
- 可复用性 Reusability
- 代码可以以后被重复使用
- 构建与总结自己的类库
- 可扩展性 Extensibility Scalability
- 添加新功能无需或者少量修改原有代码
- 灵活性 Flexibility Mobility Adaptability
- 通过接口灵活调用
1. 单一职责原则 Signle Responsibility Principle
- 一个类不要写太大,只负责一件事情或者只负责一类事情,要尽可能的纯粹。
- 高内聚 低耦合
2. 开闭原则 Open Close Principle
- 对扩展开放,对修改关闭
主要思想就是可以再补修改原来代码的情况下进行扩展 - 抽象化,其实现的核心为 多态
3. 里氏替换原则 Liscov Substitution Principle
- 再使用父类的时候这个父类是可以被子类进行替换的。这里是继承的概念。
代码伺候
class A{
public void doit(){
System.out.println("hello ...");
}
}
class B extends A{
public void doit(){
System.out.println("hello word...");
}
}
这个里氏替换关键点在于
A a =new A();
a.doit();
与
A a =new B();
a.doit();
中的new A() 是可以完全替换为new B()来实现的。对于下一步的a.doit()是没有任何影响的(这里指影响是代码构建的影响,不是运行结果的影响) 即子类可以替换父类
这种就是里氏替换原则
4. 依赖倒置原则 Dependency Inversion Principle
- 面向抽象,而不是依赖具体
- 简单来说就说面向接口编程
5. 接口隔离原则 Interface Segregation Principle
- 每一个接口都只干跟自己有关的事情
- 避免实现类实现不必要的方法
- 与单一原则 意义相同,但是这里指的是接口是方法,单一原则指的是对象
6.迪米特法则 low of demeter
尽量不要访问其他类或者不相关的类
这个法则中指定了都有哪些对象是相关的
- 当前对象本身 this
- 以参数形式传入到当前方法中的类对象,
- 当前对象的成员对象
- 如果有一个成员对象是集合,那么也包含集合中的元素
- 当前对象中所创建出来的对象
和其他类的耦合变低