zoukankan      html  css  js  c++  java
  • 设计模式心得

    1.继承是系统进化的主要手段,设计模式根据讨论方向分为三种,其一,讨论对象与场景的关系,以改善继承,以利于系统进。其二,讨论类的组合,其三,讨论类树的管理。最终目的是为进化中的系统提供代码结构优化的种种便利。

    2. 工厂方法,原型,单例实际上是讨论对象与场景的关系。工厂方法实现了类与场景的代码级别的隔离,方便类的独立进化。原型分离了对象的初始化与对象的使用,为两个不同应用场景的交互提供便利,单例实际上从资源的角度限制场景对对象的使用次数。

    解释器也是对象与场景的关系,工厂方法生产对象,解释器生产行为,类似于某种配置化,脚本化,为系统提供最到灵活性。 

    3. 建造者,桥接,组合,外观,享元,责任链,命令,迭代器,中介者,备忘录,观察者,状态,策略,访问者都是在讨论组合。

    首先,程序里有数据和方法,或者有一个大类里,有很多方法和数据,一回事。这些东西要根据规则拆分成小类,才能利用实现模块化管理和进化。

    其一,根据规模或进化速度拆分,进化速度不同的原有类的组成部分,分出无继承关系若干类,组合起来共同完成某功能。

          比如,建造者,属于构造函数体量比较大,策略模式,属于部分方法有更多的变化,享元,干脆是把固定的部分和可变的部分分离开,节省资源。访问者,属于把变化较多的部分提取出来独立进化。

    其二, 根据功能进行拆分,达到一些特殊的设计需求,或实现单一职责。当然,分离出来的职责方发育的比较大,职责比较多,也是重要指标。

    观察者,观察者与被观察者之间有着不同的需求走向,状态模式,封装状态相关的方法,省略分支语句。命令模式,封装方法的调用。迭代器模式,封装类的数据访问。备忘录模式,封装类的整体context,提供恢复支持。
     其三,拆分后会有关系问题。

      桥接,直接调用,组合,方便管理,责任链,实现处理流程管线化。中介者模式,使类的关系松耦合。外观模式,把调用方的操作集成化。

    4.继承树相关

    模板方法,定义框架,子类实现功能。

    代理模式,由代理决定使用哪个子类。

    装饰器模式,通过继承在调用前后增加一些操作。

    适配器实际上是一种广义的继承,应在是场景调用时配合使用的。


    前述所有对象 类都可以替换为程序,程序集,进程。

          

  • 相关阅读:
    自定义滚动条原理
    多个轮播图或者选项卡显示在一个页面是,使用代码重用
    浮动与清除
    cni 添加网络 流程分析
    《MapReduce: Simplified Data Processing on Large Cluster 》翻译
    OpenStack overview 笔记
    docker containerd shim分析
    docker containerd 中的create 容器操作
    MIT jos 6.828 Fall 2014 训练记录(lab 6)
    docker containerd中的容器操作
  • 原文地址:https://www.cnblogs.com/baozhu/p/5187360.html
Copyright © 2011-2022 走看看