会员
周边
众包
新闻
博问
闪存
赞助商
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
Cameo Chen
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
下一页
2008年7月16日
11. Facade外观[门面模式](结构型模式)
摘要: 意图(Intent) 为子系统中的一组接口提供一个一致的界面,Façade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 ——《设计模...
阅读全文
posted @ 2008-07-16 11:08 Cameo
阅读(1340)
评论(1)
推荐(0)
编辑
2008年7月4日
10. Decorator 装饰(结构型模式)
摘要: 动机(Motivation) 上述描述的问题根源在于我们“过度地使用了继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多子类的膨胀(多继承)。 如何使“对象功能的扩展”能够根据需要来动态地实现?同时避免“扩展功能的增多”带来的子类膨胀问题?从而使得任何“功能扩展变化”所导...
阅读全文
posted @ 2008-07-04 13:38 Cameo
阅读(333)
评论(0)
推荐(0)
编辑
2008年7月1日
9. Composite 组合(结构型模式)
摘要: 面向对象有一个原则:接口最小化原则.(我们应该把我们对象里尽可能少的接口暴露给外界(一般只暴露业务业务接口)) |内部实现,和内部实现细节的接口不要暴露给客户. 面向对象和设计模式解决的是依懒问题. 动机(Motivation) 上述描述的问题根源在于:客户代码过多地依赖于对象容器复杂的内部实现结构,对象容器内部实现结构(而非抽象接口)的变化将引起客户代...
阅读全文
posted @ 2008-07-01 18:42 Cameo
阅读(345)
评论(0)
推荐(0)
编辑
2008年6月19日
8. Bridge 桥接(结构型模式)
摘要: 抽象与实现 抽象不应该依赖于实现细节,实现细节应该依赖于抽象。 动机(Motivation) 思考上述问题的症结:事实上由于Tank类型的固有逻辑,使得Tank类型具有了两个变化的维度——一个变化的维度为“平台的变化”,一个变化的维度为“型号的变化”。 如何应对这种“多维度的变化”?如何利用面向对象技术来使得Tank类型可以轻松地沿着“平台”和“型号”两个方向变化,而不引...
阅读全文
posted @ 2008-06-19 16:05 Cameo
阅读(313)
评论(0)
推荐(0)
编辑
2008年6月11日
7. Adapter 适配器(结构型模式)
摘要: 适配(转换)的概念无处不在…… 适配,即在不改变原有实现的基础上,将原先不兼容的接口转换为兼容的接口。 动机(Motivation) 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。 如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口? 意图(...
阅读全文
posted @ 2008-06-11 11:05 Cameo
阅读(273)
评论(0)
推荐(0)
编辑
2008年6月10日
6. Prototype 原型(创建型模式)
摘要: 依赖关系的倒置 抽象不应该依赖于实现细节,实现细节应该依赖于抽象。[原因是抽象变化的频率(速率)慢,细节变化的频率快] – 抽象A直接依赖于实现细节b –抽象A依赖于抽象B,实现细节b依赖于抽象B 动机(Motivation) 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的...
阅读全文
posted @ 2008-06-10 11:28 Cameo
阅读(213)
评论(0)
推荐(0)
编辑
2008年6月8日
5. Factory Method 工厂方法(创建型模式的基础)
摘要: 从耦合关系谈起-耦合关系直接决定着软件面对变化时的行为[设计模式研究的是模块与模块之间的关系] – 模块与模块之间的紧耦合使得软件面对变化时,相关的模块都要随之更改 – 模块与模块之间的松耦合使得软件面对变化时,一些模块更容易被替换或者更改,但其他模块保持不变 一个原则:变化快的东西不要影响变化慢的东西。 接口是模块与模块之间连接的部分,是相对稳定的部分,如下图...
阅读全文
posted @ 2008-06-08 09:28 Cameo
阅读(228)
评论(0)
推荐(0)
编辑
2008年6月6日
4.Builder 建造者(生成器)(创建型模式)
摘要: 最优秀的面向对象就是设计模式,它解决的是一系列变化的问题[设计模式是封装一系列变化].[如果系统没有变化的地方或变化太激烈了,没有不变的地方.这样的情况就不要用设计模式了] Builder模式的缘起 • 假设创建游戏中的一个房屋House设施,该房屋的构建由几个部分组成,且各个部分要富于变化。 • 如果使用最直观的设计方法,每一个房屋部分的变化,都将导致房屋构建的重新修正…… 动机...
阅读全文
posted @ 2008-06-06 09:25 Cameo
阅读(218)
评论(0)
推荐(0)
编辑
2008年6月5日
书籍收藏
摘要: 1. 书名:Microsoft .NET框架程序设计(修订版) 作者:Jeffrey Richter 译者:李建忠 出版日期:2003 年11月 出版社:清华大学出版社 推荐理由:框架设计是我看的第一本真正意义上的.NET书籍,之前看过很多,但都是工具类的。如果仅仅把.NET作为开发程序的工具,那些书就足够了。但是.NET绝不仅仅是个工具,它是一种思想、一个平台。要想深入学习,必须对其Frame...
阅读全文
posted @ 2008-06-05 10:34 Cameo
阅读(392)
评论(0)
推荐(0)
编辑
2008年6月4日
3. Abstract Factory 抽象工厂(创建型模式)
摘要: new的问题 常规的对象创建方法: // 创建一个Road 对象 Road road=new Road(); new的问题: – 实现依赖,不能应对“具体实例化类型”的变化。 解决思路: – 封装变化点—— 哪里变化,封装哪里 – 潜台词:如果没有变化,当然不需要额外的封装! 工厂模式的缘起 • 变化点在“对...
阅读全文
posted @ 2008-06-04 14:03 Cameo
阅读(318)
评论(0)
推荐(0)
编辑
上一页
1
2
3
4
5
6
7
下一页
公告