随笔分类 - HeadFirst Design pattern(设计模式)
摘要:除了 new 操作符之外, 还有更多创造对象的方法.工厂处理创建对象的细节.这么做的目的是为了抽象, 例如把创建比萨的代码包装进一个类, 当以后实现改变时, 只需修改这个类即可.利用静态方法定义一个简单的工厂, 这是很常见的技巧, 被称作静态工厂.所有工厂模式斗都用来封装对象的创建, javascr...
阅读全文
摘要:类应该对扩展开放, 对修改关闭.所谓装饰者模式, 是指用其他的类来装饰某个类,装饰者说白了就是使用 has-a 来代替 is-a隐喻咖啡店, 有很多种咖啡, 咖啡里还要增加一些 milk, 面包片啊, 等等. 针对加的东西不同, 计算出来的费用不同, 那么我们需要怎么做呢?1. 首先创建一个 cof...
阅读全文
摘要:观察者模式 observer隐喻无处不在的类比: 类比订阅报纸, 实现观察者模式 1. 报社出版报纸 2. 向某家报社订阅报纸, 只要他们有新报纸出版, 就会给你送来, 只要你是他们的客户, 你就一定会一直收到报纸. 3. 当你不再想看报纸的时候, 取消订阅, 他们就不会再送报纸过来. 4. 只要报...
阅读全文
摘要:- 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 换句话说,如果每次新的需求一来,都会使某方面的代码发生变化,那么你就可以确定,这部分代码需要被抽出来,和其他稳定的代码有区别。例如例子中的鸭子会飞 fly()方法,就需要独立出来。(把会变化的部分取出来并封装起来,以便以后可以轻易的改动或扩充此部分,而不影响不需要变化的其他部分)- 针对接口编程,而不是针对实现编程 委托(delegate) - 设计模式- 例子及总结 问题描述:现在想让鸭子能飞,该如何设计,如果只是在Duck这个类里增加飞的方法,不好,因为继承的子类里有的是玩具鸭子不能飞,如果是单独定义的接
阅读全文