具体类型或接口返回类型?

<p>今天,我来到了对象编程风格的基本悖论,具体类型或接口。 P&gt; </p><p>请告诉我一个方法的返回类型更好的选:一个具体类型或接口 P&gt; </p><p>在大多数情况下,我倾向于使用具体类型的返回类型的方法。因为我相信,一个具体类型是进一步使用更加灵活,并公开更多的功能。 P&gt; </p><p>这样做的阴暗面:耦合。 天使之一:一个具体的类型包含每本身界面,你会要开始返回,和额外的功能。 P&gt; </p><p>什么是你的拇指规则? P&gt; </p><p>有任何编程原理呢? P&gt; </p><hr/><p> <strong> BONUS STRONG&gt;:这是我的意思http://stackoverflow.com/questions/491375/readonlycollection-or-ienumerable-for-exposing-member-collections</strong></p>

41 浏览 1 回复
  gt   类型   具体   返回   接口  

回复

    <p>我的经验法则: P&gt; </p><p> 1)首先,我有方法返回的接口类型,因为它总是很容易将其更改为具体类型以后,如果必要的。更难回去的其他方式。 P&gt; </p><p> 2)即使该方法被声明为返回的具体类型,我会编写来电者尽量使用接口类型:结果 P&gt; </p><p> 3)无论是我自己调用代码有差别太大(内部VS公共API): p&gt; </p><ul> <li>如果我自己调用问题的方法(即内部API)的代码,那么更愿意我回到具体类型。 li&gt; </li><li>如果我不控制调用此方法(例如公共API),就越有可能,我返回接口类型,而不是代码。的<em>返回的具体类型是一种承诺,而一般来说,少我保证,更容易。 em&gt;的 LI&gt; ul&gt; <p>其他注意事项: P&gt; </p><ul> <li>测试可能会更容易与接口,因为我可以使用实现接口的模拟对象。 li&gt; </li><li>有,我会想返回的<a href="htt​​p://java.sun.com/javase/6/docs/technotes/guides/reflection/proxy.html#examples”相对外部机会=“ nofollow的">代理对象(我现在真的很深远的借口) li&gt; ul&gt; <p> <strong>综上所述, STRONG&gt; P&gt; <ul> <li>我平时的<em>返回接口类型 em&gt;的,因为我觉得松耦合的好处大于具有完全访问具体类型的便利性。 li&gt; <li>不过,我并不反对切换到的<em>根据具体情况逐案退回具体类型 em&gt;的只要方便胜过松耦合的好处。 li&gt; ul&gt; <p>经验法则,在返回类型,是尽可能具体,在参数类型尽可能不具体。也喜欢接口,因为你可能以后如果necesary交流您的实现,而无需改变你的API的客户。 P&gt;
    </p></em></li></em></li></ul></strong></p></li></ul></em></li></ul>

    肖荭薇

相关信息

LGA 775是接口类型吗?

如题!

15 浏览 6 回复   接口   lga   类型   以前   775  

确定一个接口类型实现

<p>只是一个快速...我如何确定哪些接口类型工具? P&gt; </p><p>干杯 安东尼 P&gt; </p>

40 浏览 1 回复   gt   类型   确定   接口类型   接口类  

封装方式和接口类型~~为什么一个 是socket T 一个是LGA 775?

[http://www.sanhaostreet.com/Price/productInfo/showProduct.asp?dataid=54795&amp;product\_ID=22127](http://www.sanhaostreet.com/Price/productInfo/showProduct.asp?dataid=54795&amp;product_ID=221...

21 浏览 2 回复   775   socket   lga   类型   接口类型  

对于一个盘符接口类型

<p>在得到卷的设备接口类型,鉴于其驱动器盘符(例如摹:)有什么建议?具体而言,要寻找一个不依赖于WMI的解决方案。 P&gt; </p><p>感谢您。 P&gt; </p>

47 浏览 1 回复   gt   设备   类型   盘符   接口类型  

CPU接口类型与主板CPU插槽类型

Intel Celeron D 331(64位/盒)CPU接口类型是:LGA 775,主板CPU插槽类型是:Socket 775,请问这样搭配会冲突吗?为什么?

24 浏览 6 回复   类型   cpu   板子   接口   冲突