我想请您提出一点建筑风格的观点:
我的ORM给了我一个与我的系统用户相对应的User对象。我想开发一堆用于处理用户的方法-GetByUsername(),Authenticate(),VerifyLoginPassword()等。不过,在我看来,其中一些方法并不真正属于User类-例如GetByUsername()至少感觉像是User的静态方法,但是拥有另一个类(例如为我们提供这些User-management类型任务的“UserManager”)会更“干净”吗?一个User实例包含Authenticate()方法似乎有点奇怪,例如,是否由安全系统来进行身份验证?
我担心的是,我最终还是遵循该模型,直到User类只不过是一个结构,而User Manager和Security Manager类实际上完成了所有方法工作。让所有这些管理器类都操作轻量级对象并不是一件很“OO”的事情。
对此哲学问题的任何想法或与现有技术的联系,将不胜感激!
最佳答案
听起来您到了这一步,您不再局限于将对象定义为“狗是动物”,而是按照的角色,职责和行为进入了对象定义。
我会推荐这本书来帮助您实现这种过渡并真正“得到它”:
Object Design: Roles, Responsibilities, and Collaboration
对于您的特定问题,我没有答案,因为这是一项基本的设计决策,因此您应该真正了解“更大的图景”。本书将为您提供“责任驱动设计”的原理和技术的良好基础。
关于oop - OO编码-是否使用对象管理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1092715/