近乎重用模型组件的最佳实践?

时间:2010-04-30 11:31:54

标签: language-agnostic oop

我需要在代码中使用Fund模型。它将包含基金名称和基金代码。为了重用,我在包含所使用的其他模型的包中找到了一个现有的Fund模型。然而,这里的问题是,除了基金名称和代码,它还包含一个金额。金额与我的背景并无直接关系。那么,我:

1)按原样使用现有的Fund模型,忽略基金金额的设定者/获取者。

2)将FundDescription接口放在现有的Fund模型上,以便仅访问我感兴趣的信息。

3)创建一个FundDescription基类,现有的Fund模型现在可以从中扩展

4)创建一个全新的单独模型,因为这两个模型略有上下文

1 个答案:

答案 0 :(得分:2)

选项1 可能会使读取代码的人感到困惑,并且可能会诱使某些不完全理解您的代码的人使用这些设置者/获取者,因为存在一些误解。其他选项迫使他更好地理解你的代码。

选项2 排序第二的解决方案,但对我而言,逻辑上并不完美。

选项3 这是解决所列问题的最简洁,最合乎逻辑的方法,我认为在这种情况下接近最佳做法是合格的。

选项4 这听起来没必要! : - )

选项5 (新!我要去的那个:-)在FundDescriptor模型中有一个Fund类型的成员变量。

每当面对这种设计决策时,我通常会尽量避免考虑“什么是最有效的解决方案”或“什么是需要最少代码的解决方案”,而是考虑什么看起来最合乎逻辑对于第一次阅读代码的人

将“extends”结构视为“is-a”关系,然后大声朗读。如果它有意义且合乎逻辑,那就去吧。怎么样,“Fund 对你来说是 FundDescriptor”的声音?如果它听起来像“嗯......没有意义”,那么我会选择5,否则我会选择3。

查看

上接受的答案

Inheritance vs. Aggregation