zoukankan      html  css  js  c++  java
  • 设计模式 特点比较

    ===================
    策略模式 和 模板模式
    ===================

    相同点: 提供一个抽象的统一接口,可以使用不同的算法来实现这一接口.

    不同点: 策略模式采用 组合方式 ,模板模式采用的是 继承方式. 造成的不同后果是,采用组合方式的策略模式可以动态修改使用的算法实现,而采用继承方法的模板模式则只能使用事先设定的特定算法.



    =======================
    简单工厂 工厂方法 抽象工厂
    =======================

    简单工厂: 抽象了同一类型(比如不同品牌的笔记本电脑)产品的生产过程,通过工厂类来实现对不同产品生产过程的选择.

    工厂方法: 不仅抽象了产品类的生产过程,还抽象了工厂类本身. 将特定的产品的生产过程和特定的工厂相对应. 将原先工厂类中的选择提升到工程类以上的层级---即客户层级. 通过选择特定的工厂,来选择生产特定的产品.

    抽象工厂: 在工厂方法的基础上,将特定的产品生产过程和特定的工厂类之间的对应关系解除,使得工厂类和产品类之间能够产生更多灵活的组合方式.




    =================
    装饰器模式 与 子类化
    =================

    装饰器模式是为一个类添加特定的功能,而不修改原类的代码. 为一个类扩充功能也可以通过继承的方式,在子类中实现父类中不具有的功能.

    装饰器模式的优点: 装饰器为一个类添加功能是采用动态的方式进行的,可以动态增加删除.这个是通过继承,创建子类无法实现的.


    ==================
    代理模式 与 策略模式
    ==================

    代理模式和策略模式在结构上非常相似. 策略模式中 有一组实现相似功能的算法作为可替代算法.
    而代理模式中的代理类主要是为调用类提供某一功能,不强调实现相似功能的算法.

    =====================
    中介模式 和 外观模式
    =====================

    中介模式 在几个相互交互的对象之间建立一个 交互模块. 避免这些交互对象直接的耦合. 外观模式是将一组功能不同的,不具有相互交互性的对象封装成特定功能,提供一个统一的界面 供其他类调用.


    =======================
    建造者模式
    =======================
    建造者模式可以理解为 一个模板模式 的变形. 模板模式的目的是为了在子类中维护一个相同的接口.

    而建造者模式增加了一个 指导者类.用来获取和按照特定顺序调用 建造器子类中的方法. 不但实现了接口的统一(建造器抽象类定义了统一的接口),而且在指导类中指定了 方法调用的先后顺序.

  • 相关阅读:
    “XXXXX” is damaged and can’t be opened. You should move it to the Trash 解决方案
    深入浅出 eBPF 安全项目 Tracee
    Unity3d开发的知名大型游戏案例
    Unity 3D 拥有强大的编辑界面
    Unity 3D物理引擎详解
    Unity 3D图形用户界面及常用控件
    Unity 3D的视图与相应的基础操作方法
    Unity Technologies 公司开发的三维游戏制作引擎——Unity 3D
    重学计算机
    windows cmd用户操作,添加,设备管理员组,允许修改密码
  • 原文地址:https://www.cnblogs.com/yang82/p/8110900.html
Copyright © 2011-2022 走看看