摘要: 装饰模式的本意,就是可以给某个类,动态的增加功能;怎么理解呢,书中写的,我有饮料类,我有调料类,我想给某种饮料,加上不同的调料,并且最后打印并计算出来;这里在以前的细节哪个章节写了注意事项,就是在.NET代码中,要把基类用到的函数,虚拟化,这样,如果子类不需要,就不覆写了,要是需要,就覆写,方便的很;重要的是,装饰模式,装饰对象和被装饰对象,都继承自同一个基类,只不过,装饰对象,有单独下级派生了一次而已; 阅读全文
posted @ 2013-03-28 13:47 姜大伟 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 分主题 和观察者 两个基类,主题中有注册和删除函数, 观察者类依赖于主题,所以,可以注册和删除自己;其实,.NET里的事件模式,可以更好的解决观察者要处理的问题;还不如在主题里面:class Subject{public delegate void test();public event test t;}然后如果要注册的话,直接 t += new test(new someclass().某个函数);这样子会更加的方便,而且,大话设计模式里,比较推崇在.NET下面用这种方式解决这个模式的问题; 阅读全文
posted @ 2013-03-28 13:38 姜大伟 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 第一章主要讲述了一个鸭子的故事;鸭子有好多种类,绿头的,橡皮的等等,鸭子可以游泳,叫,飞(缺不是所有的都能飞),这个时候,就发现,继承,不太能解决问题了;于是,就把鸭子的种类和行为分开了,每种行为都单独是一个类比如,飞行行为,游泳行为,叫行为,并且继承自一个基类,这样,在鸭子的种类中,就可以用这个基类来操作了,并且随时都能切换为其他的类型,比如飞的巨慢,飞的巨快等等;可以通过set方法进行设置;这就是最简单的策略模式,相当于,是把一个"算法" 并行排起来,自行选择; 阅读全文
posted @ 2013-03-28 13:12 姜大伟 阅读(117) 评论(0) 推荐(0) 编辑
摘要: publicabstractclassBeverage{protectedstringdescription="UnknownDescription";publicvirtualstringgetDescription(){returndescription;}publicabstractdoubleCost();}publicclassEspresso:Beverage{publicEspresso(){description="Espresso";}publicoverridedoubleCost(){return1.99;}}publicclass 阅读全文
posted @ 2013-03-28 11:05 姜大伟 阅读(233) 评论(0) 推荐(0) 编辑