设计模式 - 用于公共数据访问的对象

时间:2012-12-16 10:29:47

标签: oop design-patterns

我正在寻找在以下情况下使用的正确设计模式:

我有一个运行的进程,在此过程中我需要将几个属性附加到系统中的对象。该对象具有相同的类型,但在运行时它可能表现出略微不同的行为,因此根据类型设置属性的方式可能会有所不同。

无论这些对象的类型和行为如何,我都希望在每个对象上设置相同的属性。

然后我需要一个对象来解析过程中另一个点的这些属性

最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

我建议您在编码之前不要尝试选择设计模式。首先,编写代码。然后,开始抽象任何冗余代码或变化的代码。要了解不同的抽象代码,请阅读Head First Design Patterns。在本书的最开始是一个使用策略模式抽象变化的例子。 SimUDuck的例子是我见过的最好的战略模式示例之一。这听起来就像你要问的那样。但是,你的问题没有具体的例子说明你要做的事情,所以在这里给出一个具体的例子很难。

话虽如此,听起来你需要好的,老式的多态:你需要以同样的方式对待所有对象,并设置相同的属性,只是使用不同的值。为此,请创建一个接口,并使所有不同类型实现该接口。然后,在调用/消费代码中,将每个具体类型作为接口处理。

如果您首先尝试选择一种设计模式,那么很多时候您最终会发现事情会根据实施细节而发生变化,而您对设计模式的原始猜测最终会成为错误的选择。然后你最终编码以满足设计模式而不解决真正的问题。首先编写代码,即使它很难看。让它工作。然后找到要抽象的区域,它自然会演变成一种设计模式。

答案 1 :(得分:0)

如果我理解正确,你想在运行时添加行为??? 如果是的话,我认为 - 装饰(又名包装)设计模式可以很好。