美文网首页
设计模式

设计模式

作者: 森碟儿 | 来源:发表于2018-03-11 22:16 被阅读0次

设计模式之组合模式

    最新在工作之余,看了看这个设计模式,关于设计模式有很多种。最最常见的就是这个MVC模式或者工厂方法模式单例模式等,在做项目的过程中能灵活的掌握各种设计模式,也就是我们的架构设计越清晰,以后的项目也易于管理。

     设计模式大概分为二十几种,原型模式 、 工厂方法模式、 生成器模式、 单例模式、 适配器模式、 桥接模式、 外观模式、 中介者模式、 观察者模式 、组合模式 、迭代器模式、 访问者模式、 装饰模式 、责任链模式 、模板方法模式、 策略模式 、命令模式、 享员模式、 代理模式、 备忘录模式。

    在一个应用程序中,我们可以把相似的业务逻辑用一个设计模式当中的某一个来设计,当然一个应用程序中是由多个设计模式组合而成,有的设计模式是环环相扣的,有的是单一的。下面就说下组合设计模式的理解及使用场景

基本理解


1.整体和部分可以一直对待。

组合模式:将对象组合成树形结构以表示“部分--整体”的层次结构。组合模式使得用户对单个对象和组合独享的使用具有一致性。

2.透明方式和安全方式

透明方式:在Component(为组合中的对象声明接口)中声明所有用来管理子对象的方法 。这样实现该接口的子类都具有了该接口中的方法。这样的好处就是叶节点和枝节点对于外界没有区别,他们具有完全一致的行为接口。但问题也很明显,因为Leaf类本身不具备添加删除方法的功能,所以实现它是没有意义的。

安全模式:在Component接口中不去声明Add和Remove方法,那么子类的Leaf也就不需要去实现它,而是在Composite声明所有用来管理子类对象的方法,这样做就不会出现刚才提到的问题,不过由于不够透明,所以树叶和树枝类将不具有相同的接口,客户端调用需要做相应的判断,带来了不便。

何时使用组合模式


当你发现需求中是体现部分与整体层次的结构时,以及你希望用户可以护绿组合对象昂与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑用组合模式了。

自定义控件时,就是把一些基本的控件组合起来,通过编程写成一个定制的控件。这就是典型的组合模式应用。

组合模式的好处


1.组合模式定义了包含基本对象和组合对象的类层次结构。基本对象可以被组合成更复杂的组合对象,而这些组合对象又可以被组合,这样不断地递归下去,客户端代码中,任何用的的基本对象的地方都可以使用组合对象了。

2.组合模式让客户可以一致地使用组合结构和单个对象。

何时使用组合模式


1.想获得对象抽象的树形表示(整体部分的层次结构)。

2.想让客户端统一处理组合结构中的所有对象。

在Cocoa Touch框架中使用组合模式


     在Cocoa Touch框架中,UIView被组织成一个组合结构。 每个UIView的实例可以包含UIView的其他实例,形成统一的树形结构。让客户端对单个UIView对象和UIView的组合统一对待。

结束语:这是第一次写简书,也是刚刚看这个设计模式,如果哪里理解的不好,或者有需要补充的,还请大家见谅,积极指出不足之处,共同成长🙂。

相关文章

  • 设计模式

    常用的设计模式有,单例设计模式、观察者设计模式、工厂设计模式、装饰设计模式、代理设计模式,模板设计模式等等。 单例...

  • 设计模式笔记汇总

    目录 设计原则 “依赖倒置”原则 未完待续... 设计模式 设计模式——策略模式 设计模式——装饰者模式 设计模式...

  • 设计模式

    《C#设计模式》 《C#设计模式》-设计模式概述 《C#设计模式》-面向对象设计原则 《C#设计模式》-单例模式 ...

  • 浅谈JS的一些设计模式

    @(书籍阅读)[JavaScript, 设计模式] 常见设计模式 设计模式简介 设计模式概念解读 设计模式的发展与...

  • 前端设计模式

    JS设计模式一:工厂模式jS设计模式二:单例模式JS设计模式三:模块模式JS设计模式四:代理模式JS设计模式五:职...

  • 设计模式之工厂模式

    设计模式之工厂模式 标签(空格分隔): 设计模式 工厂模式 设计模式的感念 设计模式的应用 工厂设计模式的产生 工...

  • JavaJavascript基础进阶(十七)JS中常用的设计模式

    单利设计模式、构造原型设计模式、发布订阅设计模式、promise设计模式 单利模式 构造原型设计模式 最贴近OOP...

  • 设计模式 - 目录

    设计模式01 - 单例模式 设计模式02 - 工厂模式 设计模式03 - 建造者模式 设计模式04 - 适配器模式...

  • 第1章 设计模式概述

    一、设计模式的概念 二、设计模式的历史 三、设计模式的要素 四、设计模式的分类 ■ 创建型设计模式 ■ 结构型设计...

  • iOS设计模式(3)适配器模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(4)抽象工...

网友评论

      本文标题:设计模式

      本文链接:https://www.haomeiwen.com/subject/tluwfftx.html