我有一个简单的程序,可以有管理员用户或普通用户。 该程序还有两个类:UserAccount和AdminAccount。 管理员需要做的事情(用例)包括Add_Account,Remove_Account等。
我的问题是,我应该尝试将这些用例封装到对象中吗?
只有使用AdminAccount登录的管理员才能添加和删除其他帐户。我可以有一个无类的Sub过程,它将新的UserAccount对象添加到系统中,并在管理员按下“添加帐户”按钮时调用。或者,我可以将该过程作为AdminAccount对象中的方法放置,并让按钮事件执行一些代码,例如'Admin.AddUser(name,password)。'
我更倾向于采用第一种选择,但我不确定这个OO业务应该走多远。
答案 0 :(得分:2)
对象应该有多少逻辑?
全部。
面向对象101会说你应该有一个Account类。用户和管理员的角色可能会赋予一个人不同的权力,但是从系统添加和删除帐户的行为不应该改变。
您的对象也应该使用超出用户可以看到的界面的用途。您的用例应该可以为文本或图形用户界面执行。这是一个很好的测试,看看你如何将用户界面与逻辑分开,首先看看你是否可以在没有GUI的情况下解决问题。
如果您首先考虑GUI,那么你做错了。
答案 1 :(得分:0)
创建帐户肯定是一项业务活动,因此它应该是您的某个业务类(例如Account)的一部分,而不是按钮方法中的逻辑。