有一个架构风格的问题,我想请您发表意见:
我的ORM给我提供了一个User对象,对应于我的系统中的一个用户。我想为处理用户开发一堆方法 - GetByUsername()、Authenticate()、VerifyLoginPassword()等等。然而,我感觉其中一些方法并不真正属于User类 - 例如GetByUsername()至少感觉像是User类的静态方法,但使用另一个类,比如"UserManager",来提供这些用户管理类型的任务更加“干净”一些吗?例如,如果进行身份验证的是安全系统,那么将Authenticate()方法包含在User实例中似乎有点奇怪?
我担心的是,我按照这种模式,最终User类只是一个结构体,而我的User Manager和Security Manager类实际上会完成所有方法工作。让这些管理器类操作轻量级对象并不是非常“面向对象”。
欢迎您就这个哲学问题发表您的想法或提供相关先前文章的链接!