摘要:
作用:假设我们有一个使用了八个对象的程序,由于需求变更,其中三个对象需要另外一个属性。读者可以为这三个对象创建一个派生类,在多数情况下,这是一个完全可以接受的方案。然而,如果这三个对象中的每个对象都要求有不同的属性,这就意味着要创建三个派生类。更进一步,如果其中一个类具有其他两个类中的属性,可能就要创建更复杂的类,这既容易造成混乱也没有必要————装饰者模式给我们提供了这样一个方法:改变单个对象的... 阅读全文
摘要:
作用:使组件既可以是单个对象,也可以是对象的组合。比如:算术表达式包括操作数、操作符和另一个操作数。操作数可以是数字,也可以是另一个表达式。这样,2+3和(2+3)+(4*6)都是合法的表达式;再比如:常用的树控件,其对象可以是一个节点,也可以是一个叶子。对一棵树来说,对其添加节点还是添加叶子是一样的。 实现要点:ArrayList , 众所周知.net提供的ArrayList极大地方便了你组合对... 阅读全文