zoukankan      html  css  js  c++  java
  • 设计模式---合成模式

    合成模式其实就是把骡子和马同样看待!

    上图中可以看出,我们可以吧骡子和马看做都是动物。

    合成模式可以不提供父对象的管理方法,但是合成模式必须在合适的地方提供子对象的管理方法

    合成模式的实现根据所实现接口的区别分为两种形式,分别称为安全式透明式

    安全模式:当然就是一开始就告诉别人了,我不具备这个功能,完全就给你机会进行xxoo;

    透明模式:就是你要进行xxoo时候,我让你一个异常的惊喜,就是没小gg

     ●  抽象构件(Component)角色:这是一个抽象角色,它给参加组合的对象定义出公共的接口及其默认行为,可以用来管理所有的子对象。合成对象通常把它所包含的子对象当做类型为Component的对象。在安全式的合成模式里,构件角色并不定义出管理子对象的方法,这一定义由树枝构件对象给出。

      ● 骡子构件(LuoZi)角色:骡子对象是没有下级子对象的对象,

      ●  马构件(Ma)角色:代表参加组合的有下级子对象的对象。树枝构件类给出所有的管理子对象的方法,如add();

    客户端调用内部方法时候,是骡子里面是不存在add()这个方法的,从根本上解决了客户端错误调用;就不会有发生误操作的可能,能访问的方法都是被支持的。

    透明模式:

    透明性合成模式是指:从客户端使用合成模式上,是否需要区分到底是“骡子对象”还是“马对象”。如果是透明的,那就不用区分,对于客户而言,都是Compoent对象,具体的类型对于客户端而言是透明的,是无须关心的。

  • 相关阅读:
    Eclipse常用插件汇总
    关于销售订单
    java下载文件的种方式
    左右对联
    链表
    Spring MVC 入门
    JAVA环境配置总结
    struts2 iterator判断奇偶
    保存页面的浏览记录
    心扬JS分页
  • 原文地址:https://www.cnblogs.com/java-synchronized/p/6740793.html
Copyright © 2011-2022 走看看