代码改变世界

随笔档案-2010年1月15日

设计模式之装饰模式(Decorator)

2010-01-15 22:27 by key_sky, 204 阅读, 收藏,
摘要: 装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。Component是定义了一个对象接口,可以给这些对象动态地添加职责,ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator,装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorat... 阅读全文

设计模式之策略模式(Strategy)

2010-01-15 22:22 by key_sky, 249 阅读, 收藏,
摘要: 面向对象的编程,并不是类越多越好,类的划分是为了封装,分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类.策略模式(Strategy):定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。从概念上看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合.优点:Strategy... 阅读全文

设计模式之简单工厂模式(SimpleFactory)

2010-01-15 22:16 by key_sky, 211 阅读, 收藏,
摘要: 设计模式主要原则:单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破会。开放-封闭原则:软件实体类、模块、函数等等应该可以扩展,但是不可修改。对扩展是开放的(Openfor extensio),对于更改时封闭的(Clo... 阅读全文