【发布时间】:2014-08-07 17:07:54
【问题描述】:
我正在用 c# .net 4.0 编写一个软件,但在确保代码库在特定领域具有可扩展性、可重用性和灵活性方面遇到了困难。
我们有数据需要在不同的组织单位中进行分解。随着公司的发展,这些单位将需要更改、分类、删除和添加。
无论我们如何分割数据结构,我们都会遇到大量条件语句(开始时大约 100 条左右),我们试图避免这些语句,从而使我们能够轻松地修改 OU。
我们希望找到一种面向对象的方法,允许我们根据对象的属性将对象路由到不同的工作流,而不必每次都添加 switch 语句。
例如,假设我有一个名为“Order”的对象进入系统。这个对象里面有“orderItems”。这些不同种类的“orderItems”中的每一种都需要在代码中触发不同的函数才能进行适当的处理。每个“orderItem”都有不同的工作流程。条件看起来基本上是这样的 -
if(order.orderitem == 'photo')
{do this}
else if(order.orderitem == 'canvas')
{do this}
编辑:试图澄清。
【问题讨论】:
-
看起来您需要应用设计模式。当您必须根据条件切换逻辑时,工厂和抽象工厂模式是候选者。否则,请向我们展示代码,以便我们建议相应地对其进行重构。
-
你研究过控制反转(IoC)吗?stackoverflow.com/questions/250451/…
标签: c# .net object conditional-statements object-oriented-analysis