ooQuestions-MixingControllerLogicandBusinessLogic我不确定我是否使用“标准”术语,但这是一个基本的OO问题我'我正在尝试解决。我正在写一个窗口窗体。我不想在表单事件处理程序中使用逻辑,所以我只是从那里调用自定义对象。在自定义对象中,有两组逻辑。“控制器”逻辑决定什么时候需要做什么。执行需要完成的实际业务逻辑(例如,执行数学运算和返回结果的控件等)。我的问题是,OO体系结构是否允许在一个对象中使用这两种方法?或者建议将它们拆分为“控制器”对象和“业务逻辑”对象?我应该参考这个设计模式吗?目前,我已经开始将它们组合成一个对象。该对象有一个包含控制器逻辑的“开始”方法。然后该方法根据需要调用对象的其他方法,最终将结果返回给对象的调用者。通常,您应该将它们放在两个不同的对象中,但带有限定符。如果您的项目足够小并且您的对象模型不够复杂,那么将功能组合到一个对象中可能是有意义的;但是,如果您的功能足够复杂,那么隔离控制器和业务对象几乎肯定会更好。至少,如果您现在不将它们完全分离,系统将设计为稍后分离控制器和业务对象。你正在做的是一个“胖控制器”架构。当前,软件开发趋向于瘦控制器。OO设计就是解耦。如果您只关心OO编程的一件事,那就这样吧。查看“快速入门领域驱动设计”。这本免费电子书简要介绍了EricEvans的开创性著作《领域驱动设计》中涵盖的概念。这些概念的教育应该可以帮助您了解如何将业务逻辑与控制器或服务层分开。不,我没有把业务逻辑放在控制器中。我添加了一个注入控制器的中间服务层。让服务完成工作。控制器用于路由请求和编组响应。即使您不使用Web服务或WSDL,将逻辑放在干净的服务层中也是“面向服务的”。如果您决定更改您的控制器/视图技术,它还有一个额外的好处。您的设计问题的答案可能如下所示:如果您还必须为其提供Web客户端,您将如何设计您的应用程序。Windows窗体UI和WebUI将调用相同的类和方法。唯一的区别是每个层如何填充UI并与其他层通信。以上就是C#学习教程:oo问题-混合控制器逻辑和业务逻辑分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
