首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设计WCF服务接口。过程化vs面向对象设计

设计WCF服务接口。过程化vs面向对象设计
EN

Stack Overflow用户
提问于 2010-10-13 13:38:20
回答 2查看 736关注 0票数 2

我们正在构建可以被其他系统使用的产品。因为我们有SOA,所以我们只开发一个服务(WCF)。关于如何设计该服务的接口,我们进行了几次有争议的讨论。我们在面向服务的过程设计和面向对象设计之间进行选择。

由于我们的服务将从.NET和Java中使用,有人说,如果服务具有面向对象的设计,就很难与服务集成。其他人则认为服务不能使用OO方法。有人说OO是完全没问题的。因此,我们没有明显的抑郁。

WCF提供了使用这两种设计的简单方法,但是哪种设计是最好的呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-13 15:09:04

我假设您使用的“面向对象”的定义是管理“对象”的程序的概念,这些单独的对象管理其内部状态并公开要调用的函数。

最接近这一点的WCF是基于会话的服务,其中每个服务实例的生命周期由客户端控制。

如果你想让Java调用这个服务,你必须使用basicHttpBinding,因为它使用的是经典的web服务协议。

此绑定不提供对基于会话的服务的支持,因此您实际上不能使用基于会话的服务。

因此,您不能将“面向对象”范例应用于服务本身。

票数 2
EN

Stack Overflow用户

发布于 2010-10-13 15:49:53

你可以通过说:“我的问题是关于服务的方法是否应该接收复杂类型而不是标量参数?”

你应该问自己以下问题:

a)该服务是否有可能被非OO客户端使用?不知道,一个COBOL批处理?即使你的公司已经对面向对象技术(Java/.NET)进行了标准化,将来这个特定的服务是否有可能被一些外部实体(客户、PHP网站等)使用呢?

b)您是否已经在过去创建了许多这样的服务(因此您完全确定复杂类型不存在编组/序列化/反序列化问题,或者至少知道您可以安全地使用什么)?

如果您对这两点都很有信心,那么可以随意使用"OO“方法来设计您的服务的输入和输出。否则,使用最安全(如果更原始)的方法,并将“对象”分解为标量组。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3921047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档