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

标签 oop domain-driven-design

我想请您提出一点建筑风格的观点:

我的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/

相关文章:

oop - 在 DDD 中实现关联的正确方法是什么?

python - 如何使 math 和 numpy 模块中的现有函数支持用户定义的对象?

c# - 处理方法内部过滤与外部过滤

domain-driven-design - DDD 领域层中的 DateTime.Now

java - 如何设置 Java EE6 应用程序结构

php - 领域驱动设计 : Handling complex entities with many states and relations (Real Estate)

php - 尝试使用 Composer 时意外的 'use' (T_USE)

java - 使用 getter 还是直接访问私有(private)成员更好?

oop - 为什么我们需要 OOP 中的构造函数?

java - 领域驱动设计实用程序类并通过实体中的存储库