我有两个类(A 和 B)和一个具有一些属性的模型(T)。在A类中,有一个传递模型(T)的方法。我们必须使用 switch case 检查条件来检查名称,其中名称与大小写匹配,然后我们必须调用 B 类的公共方法。
Public class A{
private IB _b;
public void methods(T t){
switch(t.name){
case Q.A
_b.testmethod1(t);
case Q.B
_b.testmethod2(t);
case Q.C
_b.testmethod3(t);
case Q.D
_b.testmethod4(t);
}}
我尝试了 if 条件而不是 if 但含义是一样的。 此代码是否违反单一职责原则或通用代码?
这段代码是否违反了单一职责原则或通用代码?如果是,请告诉我如何使用开关盒进行管理。
恕我直言,它只是忽略了 SRP 的存在。它本身并不违背它,因为它没有处理明确的职责。 你的方法才是真正的问题。一般来说,像这样的开关对你来说应该是一种代码味道。我不知道你到底想在这里做什么,但你必须利用多态性或实现一个服务类来负责处理这些选择。 顺便说一句,当你没有后备案例时,为什么还要在这里使用开关?