设计模式是一种可复用的且面向对象的设计工具,它与代码无关,我们可以利用设计模式设计出高内聚、低耦合的应用程序,并且最大程度实现程序的复用,以应对复杂的需求变化。
程序的可复用性就是用已存在的程序模块进行更新;
高内聚就是我有一组相互关联,紧密依赖的一些方法,我们需要将这些方法封装在一个类中
低耦合就是减少两个类或者多个类之间的相互依赖;
为了设计出高内聚、低耦合的应用程序,总结了七个原则:
1.单一职责原则;
2.依赖倒置原则;
3.开闭原则;
4.接口隔离原则;
5.里氏替换原则;
6.合成复用原则;
7.迪米特原则;
设计模式大致分为三种类型:
1.创建型设计模式;
用于对象的创建,有五种类型:
①单例(Singleton)模式;
②工厂方法(FactoryMethod)模式;
③抽象工厂(AbstractFactory)模式;
④建造者(Builder)模式;
⑤原型(Prototype)模式;
2.结构型设计模式;
用于对象和对象的组合/类与类的组合,组合后的对象或者类更利于扩展,有七种类型:
①组合(Composite)模式;
②适配器(Adapter)模式;
③包装器(Wrapper)/ 装饰器(Decorator)模式;
④桥接(Bridge)模式;
⑤外观(Facade)模式;
⑥享元(Flyweight)模式;
⑦代理(Proxy)模式;
3.行为型设计模式;
用于解决对类和对象之间的交互与方法分配问题,有十一种类型:
①状态(State)模式;
②策略(Strategy)模式;
③命令(Command)模式;
④访问者(Visitor)模式;
⑤解释器(Interpreter)模式;
⑥观察者(Observer)模式;
⑦责任链(ChainOfResponsibility)模式;
⑧迭代器(Iterator)模式;
⑨中介者(Mediator)模式;
⑩备忘录(Memento)模式;
⑩+①:模板方法(TemplateMethod)模式;
总结:学好设计模式需要明白两点,第一七个原则,第二23种设计模式。