设计模式(DesignPattern)
三要素:特定环境(约束条件),特定问题(结果),处理办法(模式)
KISS,CHANGE
类关系:1.关联关系(一个类中某个字段或者属性或者方法的返回类型是另一个类)
2.聚合(关联)关系:弱拥有
3.组合关系:强拥有
4.依赖关系:(一个类中某个方法的参数是另一个对象类型)
5.泛化关系:继承
继承--》接口--》组合--》委托
一、设计原则(Principle)
1.单一职责(SRP):设计一个类的时候,保持类的功能越单一越好(引发该类修改的可能就会越少)
2.依赖倒置(DIP):高端类尽量不要依赖于低端子类,而依赖接口(子类)
3.里氏替换(LSP):父类引用指向子类对象(多态)
4.开闭原则(OCP):对外扩展开放,对内修改封闭(通过增加代码的方式追加对象功能而不是修改代码的方式)
5.接口隔离(ISP):设计接口的时候,接口方法尽量形成同一算法簇(能够有某一个继承子类全部实现)
6.迪米特法则(LOD):朋友最少原则(类与类之间的关联越少越好)7.合成聚合复用原则(CARP):尽量通过组合的方式来编码,而不要通过继承的方式
二、创建型(Creational)
1.简单工厂(SimpleFactory)
2.工厂方法(FactoryMethod)
3.抽象工厂(AbstractFactory)
4.建造者(Builder)
5.单例(Singleton)
6.原型(Prototype)
三、结构型(Structural)
1.适配器(Adapter)
2.桥接(Bridge)
3.组合(Composite)
4.装饰(Decorator)
5.外观(Facade)
6.享元(Flyweight)
7.代理(Proxy)
四、行为型(Behavioral)
1.职责链(ChainOfResponsibility)
2.命令(Command)
3.观察者(Observer)
4.中介者(Mediator)
5.备忘录(Memento)
6.迭代器(Iterator)
7.解释器(Interpreter)
8.状态(States)
9.策略(Strategy)
10.模板方法(Template)
11.访问者(Visitor)