最近在开法中,遇到一个问题。例如说做一个tips,基本形态是一样的,但在具体显示不同物品时,会有小部分差异。或者是根据情况,传入不同参数,增减一小部分显示。于是根据数据if else在tips里做判断。当情况越来越多的时候,就变得庞杂。而且耦合性很高,加一种类型,就要往里面加一段代码,删一种类型,又要修改一次。不易读,不易维护。
解决这个问题,应该可以首先把最基本不变的属性和行为抽出来,这个类里的代码后面是不会动的。那些会变的,可以使用一下方法:
1 使用继承,在子类里实现特殊部分。这种方法适合情况少,代码多的。
2 使用委托,通过传入的委托对象来处理特殊部分。这种情况适合代码少,情况多的。同时是有默认行为的,会先判断有没注册特殊行为,没有就用默认的。