确定接口应该是多细粒度的?

时间:2010-02-27 01:21:25

标签: language-agnostic interface theory

我在界面中放入的细节越多,它的可重用性就越低。另一方面,细节越少,它似乎变得更加空灵和无用。是否有一套关于如何在各种情况下权衡这一标准的标准建议?

3 个答案:

答案 0 :(得分:2)

我是SOLID原则的忠实粉丝。 SOLID中的“I”让我相信客户不应该被迫实现他们不需要或使用的接口。换句话说,如果您有抽象类或接口,则不应强制实现者实现他们不关心的部分。

Ray Houston写了一篇很好的文章(查看会员提供商)here

答案 1 :(得分:0)

我刚与人合着了一篇关于组件粒度(大小)的论文,我们的一个结论是没有简单的方法来确定“什么是正确的”。所以不,没有标准的建议。

如果您有兴趣,我可以就这个问题给您一些学术参考:

  • Genero,M.,Piattini,M.,Calero,C。(编辑):软件概念模型的度量标准。 帝国理工学院出版社,英国伦敦(2005年)
  • Shekhovtsov,V.A。:质量的概念化。在Dagstuhl上发表的论文 概念模型研讨会,2008年4月27 - 30日(会议网站预印)(2008)

答案 2 :(得分:0)

将人类基因组视为一个类。

每个实例(细胞对象)都可以使用基因组的所有功能。 (虽然并非所有细胞对象都可以访问所有功能;除了干细胞之外)。

我提出这一点是因为我看到很多单个类的实例试图执行许多函数,而不是有多个类,每个类都执行一个函数。

这相当于一粒沙子,其中编有指令以建造城堡。 Evolution已经有数十亿年的好处来解决这些问题。工程师没有能力或时间来做这件事。