zoukankan      html  css  js  c++  java
  • 常用设计模式学笔

    开闭原则:对扩展开放,对修改关闭

    里氏替换原则:基类可以出现的地方,子类一定可以出现

    迪米特原则(最少知识原则):一个对象应该对其他对象尽可能少的了解,不和陌生人说话

    依赖倒置原则:要面向接口编程,不要面向实现编程

    单一职责原则:一个类应该只有一个发生变化的原因

    接口隔离原则:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上

     0. UML类图定义

    聚合:整体与部分的关系

    组合:是一种强依赖的聚合关系,即整体不存在了,则部分也不存在了

    依赖:一个对象在运行期间会调用另一个对象的关系【通常以构造函数、类方法的入参实现】

    关联:不同对象之间的长期强依赖关系【通常以成员变量的形式实现】

    1. 适配器模式:

      1.1 类适配器:继承被适配者类,并实现目标接口

        class ClassAdapter extends Adaptee implements Target{

        }

      1.2 对象适配器:实现目标接口,并且被适配者作为构造参数

        class ObjectAdapter implements Target {

          private Adaptee adaptee;

          public ObjectAdapter(Adaptee adaptee){

          }

        }

    应用:InputStreamReader 

    2. 桥接模式:

     定义:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现

    应用:jdbc驱动

    3. 外观模式

     定义:为多个复杂的子系统提供一个一致的接口,使这些子系统更加容易被访问

    4. 享元模式

    5. 策略模式

     定义:通过对算法进行封装,把使用算法的责任和算法的实现分割开来

    应用:Comparator

    6. 构造者模式

    定义:将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成

    构造者与工厂模式的区别:构造者模式注重零部件的组装,工厂模式注重于零部件的创建

    7. 迭代器模式

    定义:提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示

  • 相关阅读:
    3、二进制的秘闻和不同进制间的转换
    Hello World!
    HDU5883 The Best Path(欧拉回路 | 通路下求XOR的最大值)
    Codeforces 722C(并查集 + 思维)
    Floyd 算法求多源最短路径
    vim 配置
    STL容器 -- Vector
    STL容器 -- Bitset
    HDU 5707 Combine String(动态规划)
    HDU 5876 Sparse Graph(补图上BFS)
  • 原文地址:https://www.cnblogs.com/wuan90/p/11399880.html
Copyright © 2011-2022 走看看