A和B
如果是is-a 的关系,那么使用继承。
如果 是has-a,就应该是两个独立的类,
将所有类型的B封装成一个类, 通过setter设为A的一个属性,就是Strategy了, 这样可以在运行时视情况改变a的行为了。
如果想在原有类的一个实例中动态增加属性或者做处理, 使用Decorator层层修饰,就象Inputstream一样。
如果是is-a 的关系,那么使用继承。
如果 是has-a,就应该是两个独立的类,
将所有类型的B封装成一个类, 通过setter设为A的一个属性,就是Strategy了, 这样可以在运行时视情况改变a的行为了。
如果想在原有类的一个实例中动态增加属性或者做处理, 使用Decorator层层修饰,就象Inputstream一样。