【设计模式】对象关系--结构型模式(1)

来源:互联网 发布:head first java mobi 编辑:程序博客网 时间:2024/05/13 07:26

    【装饰模式】(Decorator)

      官方解释: 装饰模式,动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成一个子类更加灵活。
      个人理解:装饰模式就是根据单一职责原则,有效地把类的核心职责和装饰功能区分开了。就像我们的机房收费系统,我们的人员类(表)中有人员的姓名,学号,上机时间,下机时间,充值金额,消费金额、余额等信息。这样显得很乱,要是利用装饰模式我们应该把人员抽象出一个类、其余都是他的装饰类。这样即使人员增加了其他的信息,如上机次数,上机号、最多消费金额等,我们也不必去改动人员类,只需增加装饰类即可。
       
这里有个疑问:为什么只有信息和人员信息是聚合关系而用户没有这种关系那?(望高人指点)
 
      【代理模式】(Proxy)
       官方解释:代理模式,为其他对象提供一种代理以控制对这个对象的访问。
       个人理解:代理目的就是隐藏真实的对象,在电影中经常看见这样的现象,特别是那种警匪片。警察好不容易抓住了匪首,可以在审问中发现,他只是真正匪首的一个替身。原理真正的匪首用了代理模式,会设计模式真可怕啊(开玩笑!)。 代理的实现是这样的:真正对象找代理对象的目的就是替他做事情,所以代理对象和真正的对象有这相同的方法。相同的方法实现相同的接口,所以便用接口把 他共同的方法封装起来。最后通过继承实现。
       代理类的主要作用:对象的替换,行为的替换。
 
       【外观模式】(Facade)
        官方解释:外观模式,为子系统中的接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一 子系统更加容易使用。
        个人理解:从代码的角度看,外观模式其实就是以前在客户端需要实例化对象和调用的方法有封装成一个类。这这样子在客户端只需实例化这个类,调用这个类中的方法就行啦。这个简单工厂模式非常的像,不过不同的是简单工厂是在创建对象时刻用的,而外观模式是给已存在的这些对象规定一个关系。
  
 
      由于篇幅问题,关于其他模式的总结请看下一篇总结。(点我)
        

 

0 0
原创粉丝点击