我有两堂课,Operation
和Trigger
。每个类都有许多专门用于某些类型的操作或触发器的子类。一个Trigger
可以触发特定的Operation
。虽然Operation
可以由特定触发Trigger
。
我需要编写将给定映射Operation
到给定Trigger
(反之亦然)的代码,但是我不确定将其放置在何处。
在这种情况下,代码显然不属于一个类或另一类。因此,就单一职责原则而言,我不确定代码应属于何处。
我可以看到三个选项都可以使用。虽然1和2似乎只是语义的选择,但3和3完全代表了一种不同的方法。
- 触发时,例如
bool Triggers(Operation o)
。 - 关于操作,例如
bool TriggeredBy(Trigger t)
。 - 在管理映射的全新类中,例如
bool MappingExists(Trigger t, Operation o)
。
我应该如何根据单一责任原则决定将共享映射代码放置在何处?
责任分担后如何管理单一责任?
编辑1。
因此,实际代码如下所示。所有属性,或者是一string
,Guid
,collection<string>
,或enum
。它们基本上只是代表一小部分数据。
编辑2。
返回布尔类型的原因。另一个类将使用Trigger
和的集合Operation
。它需要知道在Trigger
和之间存在映射Operation
。它将使用该信息来创建报告。