zoukankan      html  css  js  c++  java
  • JAVA设计模式---总述篇

    一、设计模式(Design Pattern)

      1.设计模式的概念  

        是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

       2.学习设计模式的意义

       设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。正确使用设计模式具有以下优点:

    • 可以提高程序员的思维能力、编程能力和设计能力。
    • 使程序设计更加标准化、代码编制更加工程化,使软件开发效率大大提高,从而缩短软件的开发周期。
    • 使设计的代码可重用性高、可读性强、可靠性高、灵活性好、可维护性强。

    二、设计模式分类

    JAVA中的设计模式总共有23种,一共可以分为三类: 

      创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式

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

      行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

      其实还有两类:并发型模式和线程池模式。

    三、设计模式的六大原则:

      总原则-开闭原则

        对扩展开放,对修改封闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码。一句话概括就是:为了使程序的扩展性好,易于维护和升级。

      1、单一职责原则

        不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,否则就应该把类拆分

      2、里氏替换原则(Liskov Substitution Principle)

        里氏替换原则(Liskov Substitution Principle LSP)是面向对象设计的基本原则之一。 里氏替换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。里氏替换原则中,子类对父类的方法尽量不要重写和重载。因为父类代表了定义好的结构,通过这个规范的接口与外界交互,子类不应该随便破坏它。

      3、依赖倒转原则(Dependence Inversion Principle)

        面向接口编程,依赖于抽象而不依赖于具体。写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互。

      4、接口隔离原则(Interface Segregation Principle)

        每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。使用多个隔离的接口,比使用单个接口(多个接口方法集合到一个的接口)要好。

      5、迪米特法则(最少知道原则)(Demeter Principle)

        为什么叫最少知道原则,就是说:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。

      6、合成复用原则(Composite Reuse Principle)

        原则是尽量使用合成/聚合的方式,而不是使用继承。

    四、写在最后

      本篇是对JAVA中的设计模式的分类和原则做了一个大体的介绍,在后续的博文中,会陆续介绍每一种设计模式的具体实现,欢迎大家关注、订阅。

      

      

  • 相关阅读:
    bzoj 2038 [2009国家集训队]小Z的袜子(hose)
    搭配飞行员
    codevs 1022 覆盖
    Tyvj-1338 QQ农场
    bzoj 3894 文理分科
    bzoj 1877 [SDOI2009]晨跑
    poj 3304 判断是否存在一条直线与所有线段相交
    poj 2318 向量的叉积二分查找
    poj 3608 凸包间的最小距离
    LA 4728 旋转卡壳算法求凸包的最大直径
  • 原文地址:https://www.cnblogs.com/shi-zhe/p/11600137.html
Copyright © 2011-2022 走看看