zoukankan      html  css  js  c++  java
  • 四人帮设计模式之精简理解

    设计模式绝对不是灵丹妙药,但是合适的地点合适的时间使用设计模式绝对能事半功倍。

    就像武林中的招式,开始习武只能见招学招,但是一旦融汇贯通,便能无招胜有招,杀伤力与优雅并存。

    我还在见招学招的阶段,所以暂且总结一下日常编码中用过的或者有点理解的模式,以作备忘。

    1.简单工厂

    一个工厂生成多种类,根据输入判别需要生成的类。最简单最直观的工厂。

    2.策略模式

    要调用的方法定义成接口,策略实现接口即可,不同的策略用不同的类来实现。

    3.装饰模式

    将既有的类封装在另一个类中,从被封装的类返回的数据惊醒加工处理再返回,所谓打扮一下数据。

    4.代理模式

    实际工作的类被代理类隔离起来,利用操作代理类来实现对实际的类的操作。

    5.工厂方法模式

    对比简单工厂,简单工厂是把判断放在自己的函数中,工厂产品的关系是一对多。

    工厂方法需要抽象出一个接口,然后对应不同的产品分别做一个工厂,每个工厂之对应一种产品,所以是一对一。

    6.原型模式

    7.模板方法模式

    8.外观模式

    9.建造者模式

    10.观察者模式

    就是常见的event-handler模式,或者callback模式。

    11.抽象工厂模式

    对比工厂模式,工厂模式是一个工厂对应一个产品,工厂实现了创建这一个产品的接口。

    抽象工厂是一个工厂对应同一系列的产品,工厂实现创建同一系列的产品的接口,然后有多个工厂对应不同的系列。

    可以利用配置文件,反射技术来扩展抽象工厂,使得切换抽象工厂,而不用改动代码。

    12.状态模式

    13.适配器模式

    有点像中介模式。

    14.备忘录模式

    15.组合模式

    16.迭代器模式

    C#中实现IEnumerable接口返回迭代器都是此模式。通常迭代器包含一个数组,一个游标,一个next函数,一个reset函数。

    17.单例模式

    又叫单件模式,是指在一个appdomain中只存在唯一实例,通常作为全局服务,全局工具使用。

    18.桥接模式

    19.命令模式

    20.职责链模式

    各干各的,互不干扰。

    21.中介者模式

    22.享元模式

    23.解释器模式

    24.访问者模式

    未完待续。

  • 相关阅读:
    form标签
    roadmap
    自我介绍
    3 week work—Grid Layout
    3 week work—Position
    2nd week
    objects
    个人简介
    7th week :DOM BOM
    颜色表示法
  • 原文地址:https://www.cnblogs.com/andyzeng/p/3780847.html
Copyright © 2011-2022 走看看