23种设计模式:
创建模式:1. 工厂方法模式(factory)
2. 抽象工厂模式(abstractFactory);
3.单例模式(singleton) 包括饿汉式 和懒汉式 以及 枚举类型;
4. 建造者模式(builder) ;
5. 原型模式(prototype);
结构模式:6. 代理模式(proxy) 包含静态代理 和动态代理;
7. 适配器模式(adapter) ;
8. 组合模式(composite);
9.装饰者模式(decorator);
10.门面模式(facade)也称外观模式;
11. 桥接模式(bridge);
12.享元模式(flyweight);
行为模式:13.迭代模式(iterator);
14. 模板模式(template);
15.责任链模式(chain of responsibility );
16. 解释器模式(interpreter);
17.命令模式(command);
18.观察者模式(odserver);
19. 中介者模式(mediator);
20. 备忘录模式(memento)备忘机制;
21. 策略模式(strategy);
22.访问模式(visitor);
23. 状态模式(state);
设计模式的六大原则:
1.开闭原则: 对扩展开放,对修改关闭;当需求变化时,在不修改源代码的同时进行代码的扩充,以满足新的需求;也就是多使用抽象类和接口进行业务的抽象;当有新的需求的时候继承抽象类或者实现接口,来派生新的实现类,处理新需求;
2.里式替换原则: 里式替换原则通俗来说:就是子类可以扩展父类的功能,但是不能改变父类原有的功能;也就是说子类尽量不要重写父类的方法;
3.单一职责原则:一个类最好只有一种功能,只做一件事;这样类的复杂度就会降低,可读性好,维护也更容易了;
4.依赖倒转原则:高层模块不依赖底层模块,两者都应该依赖其抽象;抽象不依赖细节,细节应该依赖于抽象;核心思想就是 要面向接口编程, 通过面向接口编程来降低类之间的耦合度;提高代码的可读性,可维护,可扩展;
5.接口隔离原则:尽量将庞大的接口拆分成更小更具体的接口,尽量一个接口只服务一个模块或者业务逻辑,好比说一个接口中有五个功能描述(方法),你只想用其中的1个方法或者功能,当出现大量这种情况下就应该考虑,是否应该更细粒度的拆分接口
6.迪米特法则(最少知道原则):我只和我的直系亲属交流;也就是说当两个软件无须直接通信,尽量不要产生直接相互调用的情况,应该由第三方转发,来降低系统或模块之间的耦合度;例如 我有一个服务需要其他成千上万个服务来调用,这时候可以加一个中间件进行服务转发,其他系统和这个中间件打交道,来降低我和其他系统之间的耦合度,和提高本系统的性能,甚至跨平台跨语言
友情链接:http://c.biancheng.net/view/1331.html