我需要一个建议。我正在开发一个管理大学学生项目的程序。(我自己学生,这是我第二年的项目)。使用 c# .NET 4,WINFORMS。
我有不同的用户具有不同的权限。我不想使用重量级的解决方案,例如使用 DB、添加 GROUPS、...
我想要一个非常简单的解决方案,并且我需要为此使用至少 23 种编程模式中的一种。
我了解了抽象工厂、策略、单例等基本模式……但我无法选择正确的模式。
如果我使用基本继承,那么我需要覆盖孩子中的一些方法,“什么都不做”,因为它们继承了父母的所有方法......
有任何想法吗?主要目标是使用设计模式。
对不起英语不好:)
评论太长了,我就写到这里吧……
我知道我只需要在需要的地方使用模式。但是,去告诉我的老师 =))
他希望我在我的程序中使用 3 种模式。例如,我使用 Singleton 连接到 MySQL。
所以我需要再使用 2 种模式。
这个怎么运作。有人进入系统。我在静态类 Auth 中创建“指针”以登录用户:
static class Auth
{
public static CommonUser _currentUser;
public static CommonUser getUser()
{
return Auth._currentUser;
}
}
例如,如果老师已登录,那么我会这样做:
Auth._currentUser = new Teacher(id, name, blablba, blabla, blabla);
如果他想添加,比如说,新项目,他点击按钮ADD PROJECT,表单 Add Project 被调用,他填写所有输入,点击ADD我必须要求:
Auth._currentUser.addProject(projectId, projectTitle, ....);
如果管理员登录到系统,那么为了添加新项目,我会:
Auth._currentUser = new Admin(id, name, blablba, blabla, blabla);
然后调用相同的方法。
Auth._currentUser.addProject(projectId, projectTitle, ....);
但是这里的metod addProject 是一样的,所以我必须使用继承。
但是,如果 Seretary 登录了,我会这样做:
Auth._currentUser = new Seretary(id, name, blablba, blabla, blabla);
秘书必须无权执行以下操作:
Auth._currentUser.addProject(projectId, projectTitle, ....);
那么我需要覆盖秘书类中的 addProject 方法并将其设为空,还是调用 MessageBox?
类似的东西......所以,他希望我在这里使用一个模式:-/说......如果我需要添加其他具有不同权限的人,所以我不需要在我的所有程序中进行更改。 ..
例如一些图片(对不起希伯来语):