设计模式分类总结
(1)创建型模式:
1.Abstract Factory
2.Builder
3.Factory Method
4.Prototype
5.Singleton
(2) 结构型模式
1.Adapter
2.Bridge
3.Composite
4.Decorator
5.Facade
6.FlyWeight
7.Proxy
(3)行为型模式
1.Chain of Responsibility
2.Command
3.Interpreter
4.Iterator
5.Mediator
6.Memento
7.Observe
8.State
9.Strategy
10.TemplateMethod
11.Visitor
设计模式指导思想
1.可维护性Maintainability
修改功能,需要改动的地方越少,可维护性就越高
2.可复用性Reusability
代码可以被以后重复使用
写出自己总结的类库
3.可扩展性Extensibility/Scalability
添加功能无需修改原来代码
4.灵活性flexibility/mobility/adaptability
代码接口可以灵活调用
设计模式的六大原则
1.单一职责原则 (Single Responsibility Principle)【类的职责要单一】
一个类别太大,也别太累,负责单一的职责
Person、PersonManager
满足高内聚低耦合
2.开闭原则(Open Closed Principle)【对扩展开放,对修改关闭】
对扩展开发,对修改关闭(尽量不修改原来代码的情况下进行扩展)
抽象化,多态是开闭原则的关键
3.里氏替换原则(Liscov Substitution Principle)【子类可以透明替换父类】
所有使用父类的地方,必须能够透明的使用子类对象
4.依赖倒置原则(Dependency Invension Principle)【面向接口编程】
依赖抽象,而不是依赖具体
面向抽象编程
5.接口隔离原则(Interface Segregation Principle)【接口的职责要单一】
每一个接口应该承担独立的角色,不干不该自己干的事情
Flyable和Runnable不应该合二为一一起使用
避免子类实现不需要实现的方法
需要对客户端提供接口的时候,只需要暴露最小的接口
6.迪米特法则(Law of Demeter)【降低耦合】
简单的讲就是不和陌生人说话
对于在迪米特法则中,对于一个对象,非陌生人包括以下几类:
(1)当前对象本身(this)
(2)以参数形式传入到当前对象方法中的对象
(3)当前对象的成员对象
(4)如果当前对象的成员对象是一个集合,那么集合中的元素也都是朋友
(5)当前对象锁创建的对象
这样就使得和其他类的耦合度变低