摘要: 设计模式——装饰模式需求从一个编程任务说起。有段旧代码如下: public class Girl { public virtual void GoSchool() { Console.Write("女孩去上学!"); } }客户提出了新的要求,随着时代的进步,现代女孩上学还需要增加新的功能,有带个花花帽子,穿个漂亮裙子,画眉涂口红等可选功能,但是旧类不允许修改,因为旧的功能还是适合那些传统女孩,还在那些情况下有用。总结就是:不修改旧类代码的情况下,需要增加新的功能;这些新增的功能还可以任意组合。下面先尝试用继承机制来实现。继承旧类来实现添加功能:女孩戴个花花帽子 publi 阅读全文
posted @ 2012-10-07 17:16 萨迦狐 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 设计模式——代理模式需求现实生活中,我们难免会需要对一些不熟悉的行业处理事情,常常就找专业的中介机构来代办这些事情:例如法律事务聘请律师代理办案,买二手房找专业的房产中介代办,银行基金理财找基金理财顾问,这些专业的中介都是代理模式(Proxy Pattern)的实际应用。在程序开发中,也有类似的事情。例如设计好了业务规则类,又想添加权限控制。如果直接修改业务规则类代码加进去,则违反了单一职责的原理。那么可以再设计一个代理类,在这里代理类里调用业务规则功能,但是添加需要的权限控制就可以了。还有一种情况,如果开发的系统会依赖于其它系统的某些功能,但是那些被依赖的系统可能因为这样那样的原因还不稳定, 阅读全文
posted @ 2012-10-07 00:48 萨迦狐 阅读(215) 评论(0) 推荐(0) 编辑