什么是更好的 - 多态或继承作为使用.net库操作的概念?

时间:2010-08-30 02:06:48

标签: inheritance frameworks .net-4.0 polymorphism

如果我创建一个包含大多数用于覆盖的函数的库,这意味着您需要将逻辑放入一些初始库函数中,以便从库中获得所需的内容。这是正常\通常\好吗?将这样的库称为框架吗?

示例在我的库中我有CreateData函数,许多其他函数和一个,我们称之为Main函数,它在库中使用了很多函数,具有可理解的逻辑并且只是接收一些结果你想要以谨慎的快速方式。唯一的事情是它也使用CreateData功能。所以你只需要调用Main并获得一些随机\由库创建者数据生成的结果,但是当你想要,而不是自己实现Main时,只需改变你应该覆盖的数据创建逻辑CreateData功能。

从OOP的角度来看,这样的方法是否正常,或者我应该使用多态重写Main?

但是如果我开始使用多态,我可能需要将它用于我在main中使用的所有20-50个函数,现在它们只是可写的......

1 个答案:

答案 0 :(得分:0)

我会说“以上都不是 - 组成通常是最好的。”

多态性意味着继承。通常,当您设置多态行为时,您将覆盖虚拟方法。

听起来你正在做的是Template Method Pattern

我强烈建议为您的库(或框架)编写单元测试;这些术语通常可以互换。这将迫使您从客户端开发人员的角度使用您自己的代码(技术术语是“dogfooding”)。这种技术有助于找到痛点。

我还建议您阅读Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries (2nd Edition)并运行其随附工具FxCop。您将从专家那里学习最佳实践。