我有一个简单的程序,可以有管理员用户或普通用户。 该程序还有两个类:UserAccount 和 AdminAccount。 管理员需要做的事情(用例)包括 Add_Account、Remove_Account 等。
我的问题是,我是否应该尝试将这些用例封装到对象中?
只有使用 AdminAccount 登录的管理员才能添加和删除其他帐户。我可以有一个无类子过程,它向系统添加新的 UserAccount 对象,并在管理员按下“添加帐户”按钮时调用。或者,我可以将该过程作为方法放在 AdminAccount 对象中,并让按钮事件执行一些代码,例如“Admin.AddUser(name, password)”。
我更倾向于第一个选项,但我不确定这个 OO 业务应该走多远。
最佳答案
对象中应该有多少逻辑?
全部。
面向对象 101 会说您应该有一个 Account 类。 User 和 Admin 是可能赋予彼此不同权力的角色,但在系统中添加和删除帐户的行为不应改变。
您的对象表达的使用超出了用户看到的界面,这也应该是正确的。您的用例对于文本或图形用户界面应该是可执行的。这是一个很好的测试,可以了解您将用户界面与逻辑分离的程度,首先看看您是否可以在没有 GUI 的情况下解决问题。
如果您首先考虑 GUI,那您就错了。
关于OOP:应该将多少程序逻辑作为方法封装在相关对象/类中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2549962/