[英]Refactor tree controller which works with many different types
我正在重构处理树的类(控制器)。 因为树中有许多不同的类型(大约20种)。 它通常使用以下结构来处理例如插入:
做一些类型特定的事情并将对象插入树
public void AddChildren(Animal animal) { var cat = animal as Cat; if (cat != null) { AddCat(cat); return; } var dog = animal as Dog; if (dog != null) { AddDog(dog); return; } } public void AddCat(Cat cat) { //do some cat specific things //add to tree }
因此,用于确定对象类型的逻辑已在类中的许多地方使用。 有没有一种好的方法可以将这种逻辑集中在一个地方?
您可能要使用Strategy(GoF)模式:
http://en.wikipedia.org/wiki/Strategy_pattern
使用Strategy(GoF)时,您将职责委派给正确的对象。 在这种情况下,您将简化控制器并在各种对象上保持较高的凝聚力。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.