代码之家  ›  专栏  ›  技术社区  ›  Andrew

OO应用层设计问题

  •  2
  • Andrew  · 技术社区  · 16 年前

    假设控制器类与应用程序服务层中的服务类相同,是否正确? 例如 CustomerService与CustomerController相同

    3 回复  |  直到 16 年前
        1
  •  2
  •   Charles Bretana    16 年前

    不,单词controller通常用于表示一个类,该类负责控制某些下游(接近于ui)代码组件(如ui屏幕本身)的行为或访问模式,或某些下游组件与包含(或模型)该下游所用数据的上游组件之间的交互。组件。

    服务组件是一个组件,它提供一些功能或实现应用程序业务逻辑(或者在某些情况下,根据基础结构要求甚至应用程序设计要求)所需的流程,这些逻辑可以封装在单个类中,以便与其他应用程序功能部分隔离。

        2
  •  3
  •   zombat    16 年前

    这取决于您如何定义服务层,但一般来说,答案是否定的,它们并不相同。我使用一个定制的MVC框架,服务类与控制器类是分开的。

    控制器类负责做出应用程序逻辑决策。它们决定应用程序的操作应该是什么,比如加载什么对象,运行什么逻辑。业务逻辑(如数据更改)不应由控制器类处理。他们是为了制造 决定 . 在您的情况下,CustomerController可能会决定要加载哪个客户对象以及要对其采取什么操作。

    服务类通常负责 协调业务类之间的交互 . 这通常是以某种数据操作或事务的形式出现的。在您的示例中,CustomerService类可能为您的客户对象提供方法,以将购买保存到数据库或激活中央存储库上的RPC调用。

        3
  •  2
  •   nont    16 年前

    不,看到了 model-view-controller . 控制器应该调用服务层来完成它的工作、填充模型等,但是它们不应该是相同的。

    • 模型表示数据
    • 视图呈现数据
    • 控制器协调所有的东西,并且可以使用 服务层。

    控制器不应包含业务逻辑。

    推荐文章