多种用户类型 - 继承还是组合?

时间:2011-09-23 00:23:47

标签: php oop inheritance composition

我的网站中有两种“帐户”类型,具有非常不同的功能,以及它们之间的几个不同字段。但是,这两种类型共享“基本帐户”字段的相同表格。

是否更好,在这种情况下使用继承设计,其中用户和公司只是帐户的子项,或者更好地使用组合设计,其中帐户可以有“用户”或“公司” “(每个都有自己的功能)对象在其中?

注意:Account表包含将所有类型连接在一起的主ID,因此是我实际派生每个用户或公司的方式。

同时

我知道这是一个相当主观的问题,但我知道那里有一些常见的做法。有意义的是,应该有什么时候做一个和另一个做另一个的权利的想法 - 因此是一个正确和错误的答案。

1 个答案:

答案 0 :(得分:2)

如果“用户”和“公司”属于“帐户”(如UserAccount和CompanyAccount),则使用继承。

另一方面,如果用户和公司是碰巧拥有帐户的不同实体,则使用合成。