我对设计模式的理解就是一种可复用的 且面向对象的 设计工具 ,它与代码无关 ,我们可以利用设计模式设计出高内聚、低耦合的应用程序,并且最大程度实现程序的复用,以应对复杂的需求变化。
程序的可复用性就是用已存在的程序模块进行更新;
高内聚就是我有一组相互关联,紧密依赖的一些方法,我们需要将这些方法封装在一个类中
低耦合就是减少两个类或者多个类之间的相互依赖;
为了设计出高内聚、低耦合的应用程序,总结了七个原则:
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种设计模式++**。