您的位置:首页 > 其它

设计模式之常用场景

2017-02-22 13:33 260 查看
1.设计模式的定义

   

     模式是一条由三个部分组成的通用规则:它表示了一个特定环境一类问题一个解决方案之间的关系。每一个模式描述了一个不断重复发生的问题,以及该问题解决方案的核心设计

2.设计模式分类

    1.创建型

      创建对象时,不再由我们直接实例化为对象,而是根据特定场景,由程序来确定创建对象的方式,从而保证更大的性能,更好的架构优势,创建型模式主要有简单工厂模式(不是23种设计模式之一),工厂方法,抽象工厂模式,单例模式,生成器模式和原型模式。主要用于创建对象。创建模式:为复杂的初始化流程提供一个清晰简单的视角;让系统中对象的创建、组合和表达方式与系统本身独立开来。

    2.结构型

      用于帮助将多个对象组织成更强大的结构,结构模式主要有适配器模式,桥接模式,组合器模式,装饰器模式,门面模式,亨元模式,代理模式。简单说就是用户处理类或对象的组合解耦多个类;引入一个抽象类用于将来的扩展;封装复杂的结构。

    3.行为型

      用户帮助系统间各对象通信,以及如何控制复杂系统中的流程,行为型模式主要有命令模式,解释器模式,迭代器模式,中介者模式,备忘录模式,观察者模式,状态模式,策略模式,模板模式,访问者模式。用于描述对类或对象怎样交互怎样分配职责。行为模式:允许算法和对象职责分配之间的选择(“谁做什么”);简化在运行时难以追踪的复杂的控制流。

3.设计原则(理论)

    

    1.单一职责原则,一个类只有一个引起他变化的原因,应该只有一个职责。

    2.开闭原则,对扩展开发,对修改关闭。

    3.里氏替换原则

       里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。

    4.依赖倒转原则

       所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。实现开闭原则的关键是抽象化,并且从抽象化导出具体化实现,如果说开闭原则是面向对象设计的目标的话,那么依赖倒转原则就是面向对象设计的主要手段。

    5. 接口隔离原则

       就是软件工程中的低耦合概念。

    6. 合成复用原则

    7. 迪米特原则

3.常见设计模式总结。

    其实我们在开发过程中都或多或少用过设计模式中的某些模式,只是可能因为对设计模式了解过少,自己都不知道,下面为大家总结一下日常项目中大家一般会用到的设计模式及场景。

    1.单例模式,这不用多说,一般对数据库的连接封装的类方法,都是单例,某些时候,允许自由创建对象反而会影响系统性能下降,只用实例化一次对象,很大程度节约了系统开销。

    2.模板模式,说直接点,就是将能够抽象出来的尽量抽象为模板,尽量复用。

    3.代理模式, 代理模式其实就是在访问对象的时候引入一定程度的间接性,可以在这种间接性期间附加其他多种用途,比如

       比如应用于虚拟对象,根据需要创建开销很大对象的时候,通过它来存放实例化需要很长时间的真实对象,比如打开有很大img的网页时,先看到文字,那些图片一张一张下载后看到,未打开的图片框就是通过虚拟代理来替代了真实的图片,代理存储了真实图片的路径和尺寸。

    4.迭代器模式

            1.访问一个聚合对象的内容而无需暴露它的内部表示

         2.支持对聚合对象的多种遍历

         3.为遍历不同的聚合结构提供一个统一的接口

   5.观察者模式

   6.策略模式

   7.门面模式

   8.工厂模式

部分描述引用百科
http://www.kuqin.com/shuoit/20151221/349541.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: