这是我上博客写的第二篇文章,有很多知识点可能会有些遗落或者不足,但是我希望能够把我会的知识点,自己遇到的问题和解决问题的过程跟大家分享,希望大家能过从中的得到一些启发。
- 大致分为三类
1)工厂方法模式( Factory Method)
2)抽象工厂模式(Abstract Factory)
3)单例模式(Singleton)
4)建造者模式( Builder)
5)原型模式(Prototype)
二、结构型(7种):
2)装饰器模式(Decorator)
3)代理模式(Proxy)
4)外观模式(Facade)
5)桥接模式(Bridge)
6)组合模式(Composite)
7)享元模式(Flyweight)
三、行为性(11种):
1)策略模式(Strategy)
2)模板方法模式(Template Method)
3)观察者模式(Observer)
4)迭代器模式(Iterator)
5)责任链模式(Chain of Responsibility)
6)命令模式(Command)
7)备忘录模式( Memento)
8)状态模式(State)
9)访问者模式(Visitor)
10)中介者模式(Mediator)
11)解释器模式(Interpreter)
注:工厂模式, 工厂方法模式,单例模式, 外观(Facade)模式, 观察者(Observer)模式,桥接(Bridge)模式都是比较常用的
- 设计模式遵循的原则有6个
1、开闭原则(Open Close Principle)
对扩展开放,对修改关闭。
2、里氏代换原则(Liskov Substitution Principle)
只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。
3、依赖倒转原则(Dependence Inversion Principle)
这个是开闭原则的基础,对接口编程,依赖于抽象而不依赖于具体。
4、接口隔离原则(Interface Segregation Principle)
使用多个隔离的借口来降低耦合度。
5、迪米特法则(Demeter Principle)(应用少)
一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。
6、合成复用原则(Composite Reuse Principle)
原则是尽量使用合成/聚合的方式,而不是使用继承。继承实际上破坏了类的封装性,超类的方法可能会被子类修改。