OO编码 - 是否使用对象管理器?

Jam*_*ack 9 oop domain-driven-design

请给我一点意见的建筑风格:

我的ORM给了我一个User对象,它对应于我系统的用户.我想开发一堆处理用户的方法 - GetByUsername(),Authenticate(),VerifyLoginPassword()等.但是我觉得其中一些方法并不真正属于User类 - 例如GetByUsername()感觉至少像用户的静态方法一样,但是拥有另一个类不是更"干净",比如"UserManager",它为我们提供了这些用户管理类型的任务吗?用户实例包含Authenticate()方法似乎有点奇怪,例如,如果它是进行身份验证的安全系统?

我担心的是我最终跟随这个模型到User类只不过是一个结构,而我的User Manager和Security Manager类实际上完成了所有方法的工作.让所有这些管理器类操作轻量级对象并不是非常"OO".

任何关于这一哲学问题的现有技术的想法或链接都将不胜感激!

Rob*_*ino 6

这听起来就像你在那一点,你正在超越定义对象作为"一只狗是一种动物",并在角色,责任和行为方面进入对象定义.

我会推荐这本书来帮助你实现这种转变并真正" 得到它 ":

对象设计:角色,职责和协作

我对你的具体问题没有答案,因为这是一个基本的设计决定,你真的应该了解"更大的图景".本书将为您提供责任驱动设计原理和技术的良好基础.

请享用,

Robert C. Cartaino