有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

web项目中的java我们可以在不了解UI的情况下编写核心服务层吗?

我正在从事网络项目。我们使用flex作为UI层。我的问题是,我们通常将核心服务层与web/UI层分开编写,这样我们就可以为不同的UI层/技术重用相同的服务。因此,实际上,使用不同类型的UI技术/层重用相同的核心层服务是可能的,而不需要对API进行任何更改/添加。例如,支持同步请求响应(如jsp等)和非同步或事件驱动UI技术(如Ajax、Flex、GWT等)的UI技术的同一核心服务层,或支持多个设备(如计算机、手机、PDA等)。就我个人而言,在没有任何UI知识的情况下编写核心服务层是非常困难的。寻找别人的想法


共 (3) 个答案

  1. # 1 楼答案

    当然有可能。服务层通常是无状态的,所以它只提供使用来自UI的参数调用的方法。您可以将其想象为从UI层调用的API。重要的是而不是将任何与UI相关的内容作为参数传递。例如,不要将HttpServletRequestHttpSession作为参数传递-获取所需的值并传递它们

  2. # 2 楼答案

    My question is often we are writing core service layer separately from web/UI layer so we can reuse same services for different UI layer/technology

    服务层应该与UI无关,所以这实际上非常好

    For e.g. same core service layer with UI technology which supports synchronized request response (e.g. jsp etc.) and non synchronize or event driven UI technology (e.g Ajax, Flex, GWT etc.) or with multiple devices like (computers, mobiles, pdas etc.).

    从理论上讲,服务层中公开的业务操作不应该依赖于谁调用它以及哪种技术。但你似乎面临着一些常见的症状:

    1. 不同的用户界面确实需要略微不同的业务操作(例如,移动和非移动呼叫者返回的数据量可能不同)
    2. 业务运营与远程处理技术相结合(例如同步与异步)

    1。您必须问自己的问题是,您是否可以优雅地考虑这些稍微不同的操作,或者相反,如何优雅地公开相同操作的变化。在这两种情况下,都应该能够设计一个一致的服务API,并满足各种客户机的需求

    两个人。您必须问自己的问题是如何将业务操作与远程处理技术分离。可以引入网桥、适配器或额外的中介层,但这不应导致过度工程化

    我知道有时很难将业务操作与其实际使用完全分离。让我们考虑分页:如果业务操作是“我想要查询X的数据”,暴露的具体操作也嵌入了UI的一些知识,即分页。p>

    我只能提供一个一般性的建议:当涉及到数据、格式等时,争取在UI和业务之间实现清晰的分离。如果不能,请尝试找出对所有客户端都有意义的最通用的API

    Personally I feel its very tough to write core service layer without any knowledge of UI.

    我同意有时候很难,但你似乎做得对,所以继续这样说:)

  3. # 3 楼答案

    在完全不了解UI的情况下编写核心服务应该不难

    核心服务只需要知道执行任务所需的数据(数据来自何处并不重要)

    一旦您设计了核心服务,您就可以在它们之上构建几个不同的UI来收集必要的数据并将其传递给服务。。。然后履行他们的具体职责