如果我创建一个包含大多数用于覆盖的函数的库,这意味着您需要将逻辑放入一些初始库函数中,以便从库中获得所需的内容。这是正常\通常\好吗?将这样的库称为框架吗?
示例在我的库中我有CreateData
函数,许多其他函数和一个,我们称之为Main
函数,它在库中使用了很多函数,具有可理解的逻辑并且只是接收一些结果你想要以谨慎的快速方式。唯一的事情是它也使用CreateData
功能。所以你只需要调用Main
并获得一些随机\由库创建者数据生成的结果,但是当你想要,而不是自己实现Main
时,只需改变你应该覆盖的数据创建逻辑CreateData
功能。
从OOP的角度来看,这样的方法是否正常,或者我应该使用多态重写Main?
但是如果我开始使用多态,我可能需要将它用于我在main中使用的所有20-50个函数,现在它们只是可写的......
答案 0 :(得分:0)
我会说“以上都不是 - 组成通常是最好的。”
多态性意味着继承。通常,当您设置多态行为时,您将覆盖虚拟方法。
听起来你正在做的是Template Method Pattern。
我强烈建议为您的库(或框架)编写单元测试;这些术语通常可以互换。这将迫使您从客户端开发人员的角度使用您自己的代码(技术术语是“dogfooding”)。这种技术有助于找到痛点。
我还建议您阅读Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries (2nd Edition)并运行其随附工具FxCop。您将从专家那里学习最佳实践。