zoukankan      html  css  js  c++  java
  • java学习笔记-设计模式1(简介)

     

    1 简介

      设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。

    2 设计原则  

    面向对象有几个原则:

      开闭原则Open Closed PrincipleOCP

      里氏代换原则Liskov Substitution PrincipleLSP

      依赖倒转原则Dependency Inversion PrincipleDIP

      接口隔离原则Interface Segregation PrincipleISP

      合成/聚合复用原则Composite/Aggregate Reuse PrincipleCARP

      最少知道原则Principle of Least KnowledgePLK,也叫迪米特法则)。

    开闭原则具有理想主义的色彩,它是面向对象设计的终极目标。其他几条,则可以看做是开闭原则的实现方法。设计模式就是实现了这些原则,从而达到了代码复用、增加可维护性的目的。

    2.1 开闭原则 

      此原则是由Bertrand Meyer提出的。原文是:“Software entities should be open for extension,but closed for modification”。就是说模块应对扩展开放,而对修改关闭。模块应尽量在不修改原(是“原”,指原来的代码)代码的情况下进行扩展。

    2.2 里氏代换原则

      如果调用的是父类的话,那么换成子类也完全可以运行。里氏代换原则是继承复用的一个基础。只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对-原则的补充。实现-原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。

    1.3 依赖倒转原则

    指在软件里面,把父类都替换成它的子类,程序的行为没有变化。简单的说,子类型能够替换掉它们的父类型。依赖性倒转其实可以说是面向对象设计的标志,用哪种语言编程并不是很重要。

    1.4 接口隔离原则

    定制服务的例子,每一个接口应该是一种角色,不多不少,不干不该干的事,该干的事都要干。有降低类之间的耦合度的意思。

    1.5 合成/聚合复用原则

    合成/聚合复用原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。它的设计原则是:要尽量使用合成/聚合,尽量不要使用继承。

    1.6 最少知道原则

    一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。

    3  设计模式

    设计模式分为三种类型,共23种。

    创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。

    结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。

    行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式)、访问者模式。

     

      

      参考:http://blog.csdn.net/zhangerqing/article/details/8194653

         Gof设计模式 中文版

  • 相关阅读:
    Constants and Variables
    随想
    C#基础篇之语言和框架介绍
    Python基础19 实例方法 类方法 静态方法 私有变量 私有方法 属性
    Python基础18 实例变量 类变量 构造方法
    Python基础17 嵌套函数 函数类型和Lambda表达式 三大基础函数 filter() map() reduce()
    Python基础16 函数返回值 作用区域 生成器
    Python基础11 List插入,删除,替换和其他常用方法 insert() remove() pop() reverse() copy() clear() index() count()
    Python基础15 函数的定义 使用关键字参数调用 参数默认值 可变参数
    Python基础14 字典的创建修改访问和遍历 popitem() keys() values() items()
  • 原文地址:https://www.cnblogs.com/gxl00/p/5010100.html
Copyright © 2011-2022 走看看