none
关于接口定义文件放置的问题~~~ RRS feed

  • 问题

  • 我是从C++转过来的。

    以前定义一个项目通用文件(通常是协议,接口之类的),通常定义一个.H文件大家都引用。

    现在做C#,感觉单独定义一个.cs文件就很怪,但是为了这个接口文档单独定义一个项目更奇怪。

    想询问一下大家在遇到这种情况的时候都是怎么处理的?

    2010年7月28日 8:44

答案

  • 是单独定义。

    首先你要明白接口,为什么使用接口呢?

     

    1、接口是用来定义功能的,定义通用的功能。

    2、针对接口编程,不要针对实现编程。是为了隔离变化,对外隔离实现的细节。

     

    比如说一个模块需要向外部提供功能,这时候我们就将功能定义一个接口,然后外部添加接口,通过接口调用这个模块的功能,外部不关心模块内部如何实现。

     

    • 已标记为答案 Maksheiev 2010年7月29日 3:21
    2010年7月28日 11:58

全部回复

  • 根据 FxCop 以及 StyleCop 规范,C# 的一个 cs 文件只定义一个类型,比如接口,类,结构,委托,枚举等。所以,任何接口类型,应该放在一个单独的 cs 文件中进行定义。
    Mark Zhou
    2010年7月28日 9:05
  • 根据 FxCop 以及 StyleCop 规范,C# 的一个 cs 文件只定义一个类型,比如接口,类,结构,委托,枚举等。所以,任何接口类型,应该放在一个单独的 cs 文件中进行定义。
    Mark Zhou


    我的意思是

    接口当然是单独放在一个文件中。但是这个文件是两个项目都要用的。

    比如Server和Client。

    那么是把这个cs文件放在两个项目中,还是单独定义一个项目,包含这个cs文件,两个项目分别引用?

    2010年7月28日 11:31
  • 是单独定义。

    首先你要明白接口,为什么使用接口呢?

     

    1、接口是用来定义功能的,定义通用的功能。

    2、针对接口编程,不要针对实现编程。是为了隔离变化,对外隔离实现的细节。

     

    比如说一个模块需要向外部提供功能,这时候我们就将功能定义一个接口,然后外部添加接口,通过接口调用这个模块的功能,外部不关心模块内部如何实现。

     

    • 已标记为答案 Maksheiev 2010年7月29日 3:21
    2010年7月28日 11:58
  • 放在一个单独的项目,也是为了屏蔽实现的细节,还可以针对这个项目写自动化测试

    2010年7月28日 12:06
  • 定义一个“类库”项目。Server和Client都引用这个类库,右击“引用\添加引用\项目\你定义的类库项目”。
    2010年7月28日 13:30