zoukankan      html  css  js  c++  java
  • java设计模式0--设计模式简介

    设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

    设计模式的起源

     软件领域的设计模式起源于建筑学。

     1977年,建筑大师Alexander出版了《A Pattern Language:Towns, Building, Construction》一书。受Alexander著作的影响 ,Kent Beck和Ward Cunningham在1987年举行的一次面向对象的会议上发表了论文:《在面向对象编程中使用模式》。

    设计模式的分类

    1.创建型模式

    社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象的使用分开也就成为了必然趋势。对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题。这里有5个具体的创建型模式可供研究,它们分别是:

    工厂方法模式(Factory Method)

    抽象工厂模式(Abstract Factory)

    创建者模式(Builder)

    原型模式(Prototype)

    单例模式(Singleton)

    2.结构型模式

    在解决了对象的创建问题之后,对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点,如何设计对象的结构、继承和依赖关系会影响到后续程序的维护性、代码的健壮性、耦合性等。对象结构的设计很容易体现出设计人员水平的高低,这里有7个具体的结构型模式可供研究,它们分别是:

    外观模式(Facade)

    适配器模式(Adapter)

    代理模式(Proxy)

    装饰模式(Decorator)

    桥模式(Bridge)

    组合模式(Composite)

    享元模式(Flyweight)

    3.行为型模式

    在对象的结构和对象的创建问题都解决了之后,就剩下对象的行为问题了,如果对象的行为设计的好,那么对象的行为就会更清晰,它们之间的协作效率就会提高,这里有11个具体的行为型模式可供研究,它们分别是:

    模板方法模式(Template Method)

    观察者模式(Observer)

    状态模式(State)

    策略模式(Strategy)

    职责链模式(Chain of Responsibility)

    命令模式(Command)

    访问者模式(Visitor)

    调停者模式(Mediator)

    备忘录模式(Memento)

    迭代器模式(Iterator)

    解释器模式(Interpreter)

    GOF的著作 

    目前,被公认在设计模式领域最具影响力的著作是Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides在1994年合作出版的著作:《Design Patterns:Elements of Reusable Object-Oriented Software》(中译本《设计模式:可复用的面向对象软件的基本原理》 或《设计模式》),该书被广大喜爱者昵称为GOF(Gang of Four)之书,被认为是学习设计模式的必读著作,GOF之书已经被公认为是设计模式领域的奠基之作。

    面向对象的几个基本原则

    1.面向抽象原则

    设计一个类时,不让该类面向具体的类,而是面向抽象类或接口 。

    举个例子:定义底面为三角形的柱体

    2.开-闭原则 

    设计应当对扩展开放,对修改关闭。

    如果您的设计遵守了“开-闭原则”,那么这个设计一定是易维护的,因为在设计中增加新的模块时,不必去修改设计中的核心模块。 

    3.高内聚-低耦合原则 

    如果类中的方法是一组相关的行为,则称该类是高内聚的,反之称为低内聚的。

    所谓低耦合就是尽量不要让一个类含有太多的其它类的实例的引用,以避免修改系统的其中一部分会影响到其它部分。 

    学习设计模式不仅可以使我们使用好这些成功的模式,更重要的是可以使我们更加深刻地理解面向对象的设计思想,非常有利于我们更好地使用面向对象语言解决设计中的问题。

    合理使用模式

    1.正确使用; 2.避免教条;  3.模式挖掘

  • 相关阅读:
    内存管理实验
    浅谈RAM和ROM的各种区别
    课程总结
    IO流
    事件处理
    继承
    第四次上机作业
    第三次上机
    Java基础实训1
    Java第二次作业
  • 原文地址:https://www.cnblogs.com/wuyudong/p/4389544.html
Copyright © 2011-2022 走看看