• 设计模式总结1---模式比较


    1.简单工厂模式----工厂模式-----抽象工厂模式

    工厂模式的特点就是把相同基类的一组类放在一起管理

    2.策略模式

    策略模式就是对于各种策略(算法)进行提取,把各种策略都提取在Strategy接口用,

    而客户端只需要使用某种策略就可以了。

    3.装饰模式

    把每个特定功能放在独立的类里面,并用类包装要装饰的对象。当需要执行特定的行为时,

    可以按照特定的顺序进行包装对象了。

    装饰模式就是提取各个功能类,通过装饰Decorate类,把各个功能类独立出来,从而可以是他们的顺序打乱。

    4.代理模式

    代理模式可以很好的剪切功能类的代码,是功能类对于客户端来说是透明的

    而且方便等价功能类之间的切换。

    5.原型模式

    原型模式就是多个产品类的实例有绝大多的相同属性,但是比不完全相同。

    使用原型模式就是把这些相同的属性提取出来

    6.模板方法

    模板方法就是抽象基类定义一些算法的骨架,而子类就去实现这些差别,就像做试卷一样,题目都是一样的,只有答案不一样。

    7.外观模式

    外观模式就是把功能类各种复杂的组合放在一起,由一个facade类组合起来,提供方法,屏蔽功能类和客户端类的交互

    最常见的做法就是,当要操作一个功能的时候,很多时候我们会提供一个engine类来封装该功能。

    8.建造者模式

    建造者模式抽象出建造过程,也就是建造过程是Director类控制,而具体实现由不用的builder来实现细节。

    9.观察者模式

    观察者模式抽象出对某个subject状态的监听而改变的过程。也就是说当subject status发生变化时,ISubject接口会通知注册的observer类。

    总结:设计模式目的是为了更好的实现面向对象的构架设计。

    各种设计模式的特点都是抽象出一些相同的元素:

    1.相同的过程,可以归结为method

    2.相同的基类:可以使用三个工厂方法

    3.相同的行为:算法不同,业务逻辑相同。可以使用策略模式和模板方法

    4.特定的行为和关系,但是顺序可以随机:装饰模式

    5.事物的属性相同:原型模式

    6.功能类对客户端的支持是固定的:外观模式

    7.事物的构建过程是相同的:建造者模式

    8.事物对于主题的状态变化做相同的响应:观察者模式

     

  • 相关阅读:
    P3384 【模板】树链剖分
    AW136 邻值查找 (【模板】set)
    android布局自适应
    android HttpClient接口实现网络通信
    android加载html,以及js通讯
    mktime 和strtotime获取今日、昨日、上周、本月的起始时间戳和结束时间戳,
    mysql查询今天,昨天,近7天,近30天,本月,上一月数据方法
    瀑布流(masonry和infinitescroll)、(grid-a-licious)
    使用 JavaScript 修改浏览器 URL 地址栏
    测试UTF8编码的文件是不是加了BOM
  • 原文地址:https://www.cnblogs.com/deman/p/4159327.html
Copyright © 2020-2023  润新知