日期:2014-05-20  浏览次数:20994 次

【C#接口】的理解及使用提问,注重理解接口是什么,项目中接口的使用,及与OOP特性的相关性。
因希望本贴对CSDN的同胞(当然也包括我)有建设性的提高,在此请允许我对回贴者的回复有两点建议性的小提议(望海量的CSDN同胞们多多包涵):
一、基于C#语言中OOP特性接口的理解(望给出个人的理解及总结)
二、简明扼要的描述接口与OOP其它特性的相关性(如:接口与抽象类、继承等相关性)

先感谢议题者

以上担搁了大家点时间,以下是我的项目需求。

前两天公司的项目结束,现需要与一个大平台(以下统称为上家)进行衔接,上家在电话里只问了我软件有预留的接口?我说句有,所以现在才开始提问!

衔接注意事项:上家需从公司软件里提取经过处理和分析的相关数据后上家再进行处理。上家不想知道如何进行分析处理,公司也不想让上家知道。

此贴为语义贴(不需要代码):本人并不知接口与衔接(需求)是否有关联,也是第一次进行这种衔接,故以接口为题引发此贴。望在此给出衔接有哪几种方法?需要注意什么?望大家文字说明就行。确定有点急了,随后一周内再开此分享本人实现接口代码的过程。

衔接相关说明:公司软件是用C#开发的winform系统,后台数据存储分析处理是用MSSQL2005。上家的软件是用什么平台,后台库用什么不知道,个人理解:无需知道。我们负责提供外部接口。



------解决方案--------------------
ss
------解决方案--------------------
最近出现好多,接口的疯狂追求者
一定会引起关注的。
------解决方案--------------------
需要中提到的“衔接”应该和C#中语法接口,不是同一个概念。
这个“衔接”的抽象层次应该比语法中的接口高的多。
可以理解为是你们的系统为外部系统提供的服务。
比如查询订单交期的服务。这个“服务"对于远程系统来说可能就是有个函数,约定好参数和返回值。
调用者根据约定使用这个服务,就可以得到他所需要的信息。
------解决方案--------------------
即使使用接口, 不关心实现, 还是有几个问题需要考虑的,

首先就是接口函数参数的数据类型问题,

对于业务数据是用业务类来封装, 还是使用 DataTable 这些便捷设施

如果你提供的接口实现对方不满意, 他们是否可以很方便的编写自己的实现.

归根到底就是 Type 问题,

----------------- type of typeless, root of rootless
------解决方案--------------------
此接口与OOD中间的接口不是一个概念

你的这个接口是系统之间的一种契约,规定服务的内容/范围/使用方式等;包括通信协议/访问协议/控制协议

具体的实现方式可能是一个webservice,也可能仅仅是一个存储过程,又或者封装为一个库提供给其他人使用
------解决方案--------------------
在头壳里做几次角色扮演, 
从不同角度来设想这个实现是何种样子的,
每个角度都用最自私的想法去要求.

这时, 你不但但是程序结构的设计者和实现者了.


具体没啥意见, 毕竟最了解她的还是你. 
也不能指望客户他们给你提什么有用的东西.
------解决方案--------------------
按我的理解,应该不是 C# 中的接口概念。C# 的接口是提供一些方法签名,需要你去实现。

而按你的描述,似乎应该是提供 API(应用程序接口) 给上家使用。
------解决方案--------------------
嗯,先UP一下
------解决方案--------------------
发布WebServices接口给他们就可以。你将处理好结果集,返回给他们就可以了。

顶多告诉他们结果集的字段的意义以及接口参数的意思。
------解决方案--------------------
你可以在你的应用程序里开一个服务 开某个固定的端口
有连接的时候给他返回分析后的他要的数据 返回json/xml就好
------解决方案--------------------
接口这个概念广泛。个人观点:
1、直接提供数据库的表结构,这是一种接口,这种方法比较冒险。
2、可以用webService的方法提供一些方法给外部调用。
3、或则提供dll类库。
还有更多,如Windows消息等。具体看项目的需求。


------解决方案--------------------
我简单说下我的想法,
我看这个需求只是数据传输上的需求。 
对方的需求是假设仅是你处理完的数据(表、条目、记录。
而不是用你接口提供的方法、服务(业务处理)。

你可以用一个完善的数据传输框架实现。也是webservice, 只有区区几个框架接口。Microsoft Sync Framework 就可以实现这个需求。 对方只要访问这个Sync Service 来请求数据就可以了。 你在Sync Framework 下写上他能请求的逻辑规则。 什么数据他可以请求
------解决方案--------------------
异构系统(可能)的集成,通过采用数据接口来进行软件集成时,要实现真正意义上的无缝联接,我想如果前期没跟“上家”协商好的话,问题会很多
------解决方案--------------------



我的理解和vrhero、wuyi8808的一样
对方需要你们提供一个应用程序API,如果是B/S部署最简单的方式就是发布WebServices。
对于C/S部署,如果上家也是是.net平台可通过建立Remoting或socket向对方送数据,如果不是则有些麻烦了。
 我现在也在负责一个winform+SQL2005的C/S项目,远程服务器部署了我写的接受数据的WebService,客户端数据是通过引用这个远程webservice传过去的。但这样的方式并不是winform来提供API,而是使用API...
依我看,lz恐怕得和上家联系一下了
------解决方案--------------------