处理混合业务和演示代码的最佳方法?
-
28-09-2019 - |
题
考虑到一个假设的情况,多年来一直在维护了一个古老的旧式演示库,并且通过仓促纠正和缺乏适当的建筑监督的过程,逐渐将越来越多的业务逻辑编码为它。另外,考虑一个商务舱或名称空间,该商务类或名称空间与汇编边界没有与演示文稿分开,因此能够引用类似System.Windows.Forms之类的内容而不会被迫添加参考(比简单的使用条款更清醒的动作) 。
在这样的情况下,最终将要求该UI代码使用的业务代码重新使用并不难想。对这两层重构的好方法是什么?
我很熟悉设计模式 - 至少在原则上。但是,我没有大量的实践经验,所以我不确定自己的直觉。我开始沿着为此使用策略模式的道路。这个想法是确定业务逻辑要求UI组件的地方向用户提出问题并收集数据,然后将它们封装到一组接口中。该接口上的每种方法都将包含原始工作流的面向UI的代码,然后UI类将实现该接口。
想要重复使用业务逻辑的新代码也将实现此接口,但要替换新窗口或可能预先限制或参数化答案,以最初由UI组件回答的问题。这样,可以将BIZ逻辑视为真实库,尽管具有某种尴尬的接口参数传递给了其某些方法。
这是一个体面的方法吗?我应该如何做到这一点?我将递送您的集体互联网智慧。
谢谢!
其他提示
我谦虚地建议 模型–View – Controller -MVC 有很高的可能性作为解决问题的成功解决方案。如您所描述的那样,它将各种逻辑分开。
Hth
我将通过清楚地识别实体以及他们可以对其做出或可以采取的行动来处理它。然后,一一尝试开始创建独立的业务逻辑对象,为那些从UI中重构逻辑的人,使UI调用BL对象。
到那时,如果我正确理解您的方案,您将有一只装满BL对象的手,其中一部分制作了胜利表格,则需要将胜利表呼叫提升到UI层中。
然后,正如Justboo所说,我认为您将有足够的情况来开始从BL和UI中抽象控制器,并使其在MVC设计中发挥作用。