设计模式学习笔记02
2014-02-27 14:45
399 查看
今天学习了 外观模式 对于外观模式的理解就是在实际开发中用一种代理的方式,将程序的隅合性降低,A类对象需要调用B方法和C方法,A1类对象需要调用C方法和D方法,这种类型的项目开发比较执着于细节,一旦变动需要改变整个程序,比较繁琐,外观模式就是,创建一个代理的方式去调用各个方法,A类和A1类的对象直接将任务提交给代理X,由X来管理,来调用底层的实现方法,实现透明化。
书上的例子,举例现实中炒股和基金,炒股需要关注每一只股票的涨跌,而外观模式如同基金,将钱托管给基金,由基金去操作相应的股票。
组合模式,什么是组合模式呢,第一次看书的时候也觉得有一点难懂,书上举的例子,给女朋友买礼物,说好送一件的,但是女朋友买了一套,合在一起也算是一件。
将对象组合成树形结构用来表示“整体-部分”结构,屏蔽了容器对象与单个对象在使用上的差异,为客户端提供了统一的接口。当我们面对一个树形结构的时候,定义一个公共接口,让单个对象和组合对象都去实现这个接口,如果面对单个对象,则直接调用单个对象的方法,如果面对的是组合对象,则用递归遍历之,依次调用每个对象的方法,单个对象就相当于树形结构中的叶子节点。
使用场景:当遇到需求中是体现部分和整体之间的层次关系时,以及希望用户可以忽略组合对象?与单个对象的不同时,统一的使用组合结构中的所有对象时,就应该考虑用组合模式了。
牵涉出的一个小知识点,透明方式和安全方式?透明方式就是实现统一接口的所有叶节点和枝节点都实现了所有的方法,他们对于外界来说是一模一样的,但是问题是叶子节点中很多方法是无用的,这就造成了无用代码。安全模式是什么?在接口中不去声明那些叶子节点中不需要的方法,而是在枝节点上声明管理子类对象的方法,缺点是不透明。
书上的例子,举例现实中炒股和基金,炒股需要关注每一只股票的涨跌,而外观模式如同基金,将钱托管给基金,由基金去操作相应的股票。
组合模式,什么是组合模式呢,第一次看书的时候也觉得有一点难懂,书上举的例子,给女朋友买礼物,说好送一件的,但是女朋友买了一套,合在一起也算是一件。
将对象组合成树形结构用来表示“整体-部分”结构,屏蔽了容器对象与单个对象在使用上的差异,为客户端提供了统一的接口。当我们面对一个树形结构的时候,定义一个公共接口,让单个对象和组合对象都去实现这个接口,如果面对单个对象,则直接调用单个对象的方法,如果面对的是组合对象,则用递归遍历之,依次调用每个对象的方法,单个对象就相当于树形结构中的叶子节点。
使用场景:当遇到需求中是体现部分和整体之间的层次关系时,以及希望用户可以忽略组合对象?与单个对象的不同时,统一的使用组合结构中的所有对象时,就应该考虑用组合模式了。
牵涉出的一个小知识点,透明方式和安全方式?透明方式就是实现统一接口的所有叶节点和枝节点都实现了所有的方法,他们对于外界来说是一模一样的,但是问题是叶子节点中很多方法是无用的,这就造成了无用代码。安全模式是什么?在接口中不去声明那些叶子节点中不需要的方法,而是在枝节点上声明管理子类对象的方法,缺点是不透明。
相关文章推荐
- android设计模式学习笔记02--组合模式
- 设计模式学习笔记02
- headfast设计模式学习笔记02 装饰者
- 《设计模式:基于C#的工程化实现及扩展》学习笔记 02 准备篇 -- Namespace(命名空间)
- 学习笔记(十二)—设计模式(续)
- 设计模式学习笔记六:.NET反射工厂
- 设计模式学习笔记-适配器模式
- 【学习笔记javascript设计模式与开发实践(组合模式)----10】
- 设计模式学习笔记(四)——Builder生成器模式
- 设计模式学习笔记——观察者模式
- 设计模式学习笔记:六大原则
- Java学习笔记 - 设计模式(一)工厂模式
- 设计模式学习笔记——观察者模式
- 【学习笔记】设计模式-策略模式
- java设计模式学习笔记---适配器
- Java设计模式--单例模式学习笔记
- 步步为营 .NET 设计模式学习笔记 七、Proxy(代理模式)
- 设计模式学习笔记三:简单工厂(Simple Factory)
- 设计模式学习笔记
- [学习笔记]设计模式之Facade