设计模式 -- (初识设计模式)

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

                 

         
 

猜你喜欢

转载自blog.csdn.net/xiaodujava/article/details/88808676
今日推荐