0

我仍在尝试围绕设计模式进行思考,并且第二次遇到同样的问题,似乎急需一种模式解决方案。

我有一个具有多种帐户类型的帐户系统。我们有餐厅、酒店、service_provider 和消费者帐户类型。相信未来还会有更多的企业账户类型,当然还有全局管理员账户。

所以我想知道的是如何实现账户类型的切换。例如。每个帐户将有一个或多个配置文件,但配置文件将根据帐户类型而有所不同。我应该在这里使用什么样的类关系来处理多种类型的帐户 - 多态性或继承?

似乎应该有一个其他配置文件应该扩展的抽象基本配置文件类,但我不确定如何实现它(例如配置文件类型和帐户类型之间的连接表?)。

这也感觉像是一个实现工厂模式的机会,我只是不确定如何去做。

请问有什么想法吗?

*

*

编辑以提供一些建议的示例:

Account -> hasMany   -> Users

Account -> belongsTo -> AccountType

Account -> hasOne    -> Profile

配置文件因帐户类型而异,例如,餐厅类型的帐户将有菜单、酒单等,酒店类型的帐户将具有房间类型、设施,消费者类型的帐户将具有个人品味, 本国等

问题是哪种设计模式最能实现这些关系。

希望那更清楚,谢谢!

4

2 回答 2

1

对于帐户和配置文件之间的关系,我建议在这里聚合而不是继承,但是有一个 Account 基类可以继承到多个帐户类型中。

账户包含一个配置文件对象,可以在每个多态账户类型的构造函数中设置。

您也可以将帐户创建包装在工厂或虚拟构造函数模式中。

于 2008-10-10T13:56:26.470 回答
0

谢谢你的例子;您可能正试图让这变得比现在更难。下面的工作吗?

User <<--> Account
Account <<--> AccountType
Account <--> Profile
Profile <<--> ProfileType

我质疑帐户-个人资料 1:1 的关系,似乎一个帐户最终可能有多个个人资料,或者个人资料可能属于用户而不是帐户,但我真的不知道什么是个人资料在这种情况下是/做

于 2008-10-10T19:02:35.900 回答