Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 简单的OO设计:添加责任放在哪里?_Oop_Design Patterns - Fatal编程技术网

Oop 简单的OO设计:添加责任放在哪里?

Oop 简单的OO设计:添加责任放在哪里?,oop,design-patterns,Oop,Design Patterns,我的应用程序域有用户。它也有组织。用户可以创建组织 我的问题是我应该把createOrganizations方法放在哪个控制器上?它属于UserController吗?还是属于组织控制器?我该怎么做决定 无论如何,我计划在组织模型上添加一个方法 有什么想法吗?正如您所说,用户可以创建一个组织,因此除非该组织不跟踪所有者(不太可能),否则您应该将CreateOrganization方法委托给用户。我能想到的一个基本想法是: 用户:通过调用OrganizationRepository::Add(O

我的应用程序域有用户。它也有组织。用户可以创建组织

我的问题是我应该把createOrganizations方法放在哪个控制器上?它属于UserController吗?还是属于组织控制器?我该怎么做决定

无论如何,我计划在组织模型上添加一个方法


有什么想法吗?

正如您所说,用户可以创建一个组织,因此除非该组织不跟踪所有者(不太可能),否则您应该将CreateOrganization方法委托给用户。我能想到的一个基本想法是:

  • 用户:通过调用OrganizationRepository::Add(OwnerId)创建组织
  • 组织:只能在提供所有者id的情况下创建
如果(且仅当)您不需要跟踪组织的创建者,那么直接在组织上放置Add方法而不需要其他任何东西的想法看起来不错

希望我能帮忙!
David

它属于组织控制器

组织控制器应管理组织模型的任何创建/更改。用户不应该知道创建组织的方式或内容。如果你给他们创建组织的能力,你就是在耦合逻辑。您做出此决定是因为您同时拥有用户和组织控制器

如果您的用户/组织没有真正证明存在的合理性,也就是说,他们没有真正控制太多,那么将他们合并为一个


如果这两个类都存在,我会选择organization。

你好,David,我认为我的应用程序可能比您设想的简单-例如,没有OrganizationRepository。。。不过,谢谢你的回复。