我有个关于OOP设计的问题。
假设我们有两个类:Admin具有查询、编辑和删除的权限;用户只具有咨询权限。
您将如何设计这两个类之间的继承?
Will Admin继承了用户,因为它通过添加编辑和删除权限来进一步扩展用户的功能。还是用户正在继承Admin,在右边有更多的限制?
在泛化方面,我们是否认为Admin比用户更“通用”,应该是超类。这是我公司的高层告诉我的。但从其他一些设计中我看到了相反的情况。例如http://www.codeproject.com/Articles/567768/Object-Oriented-Design-Principles
你能澄清哪种设计是正确的,也许他所说的“一般”是什么意思?
发布于 2014-11-05 18:58:02
这两种想法都不合适。用户可以成为管理员,管理员可以成为用户。继承排除了这种能力。
唯一可重复使用的比特是咨询部分。Put是一个单独的类,Admin和User都使用它。
发布于 2014-11-05 18:58:32
这取决于您的类有哪些行为;我很容易看到这些类没有任何共同的祖先。查看一下IPrincipal框架中的.Net接口;它跟踪用户所拥有的角色,而不管用户的角色和管理是否正确。
https://stackoverflow.com/questions/26764830
复制相似问题