考虑一个假设情况,其中一个旧的、遗留的表示库多年来一直在维护,并且通过仓促更正和缺乏适当的架构监督的过程逐渐将越来越多的业务逻辑编码到其中。或者,考虑一个业务类或命名空间,它没有通过程序集边界与表示分离,因此能够引用类似 System.Windows.Forms 的东西而不必被迫添加引用(比简单的 using 子句更清醒的 Action ) .
在这种情况下,不难想象该 UI 代码使用的业务代码最终会被调用以进行重用。什么是将两层分开重构以实现这一点的好方法?
我对设计模式略微熟悉——至少在原则上是这样。但是,我没有大量的实践经验,所以我对自己的直觉有些不确定。为此,我已经开始使用策略模式。这个想法是确定业务逻辑调用 UI 组件以询问用户问题和收集数据的位置,然后将它们封装到一组接口(interface)中。该接口(interface)上的每个方法都将包含原始工作流中面向 UI 的代码,然后 UI 类将实现该接口(interface)。
想要重用有问题的业务逻辑的新代码也将实现此接口(interface),但替换为新窗口或可能是对最初由 UI 组件回答的问题的预制或参数化答案。这样,业务逻辑就可以被视为一个真正的库,尽管它的一些方法传递了一个有点笨拙的接口(interface)参数。
这是一个不错的方法吗?我应该如何更好地解决这个问题?我会尊重你们在互联网上的集体智慧。
谢谢!
最佳答案
关于c# - 处理合并的业务和表示代码的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3480291/