我们正在计划建立一个框架:一个成本估算框架,将被用于我们组织的各个领域.
高级要求是这样的:
如果我开发某种产品,它会花多少钱?这种产生的成本将用于与供应商所引用的成本进行比较,并得出关于哪个供应商选择的决定.
现在我的问题是:
开发框架时要考虑什么?
我的想法很少:
>通过抽象类和接口实现高级要求
>提供可能对Framework用户有用的实用程序类.
>考虑应该是内部的元数据 – 不应该向框架用户显示.
>设计模式使用像模板.
>输入类的属性和方法.
解决方法
几个想法:
>稍后添加有用的功能比删除被证明是设计不良或有害的功能更容易.>继承的设计或禁止它:继承引入了一个额外的复杂层次,因为你需要解决超类和子类之间的交互.这不是说它是邪恶的,但应该非常仔细考虑.>在我的经验中,接口通常比抽象类更清晰,因为它们促进组合继承.>对于接口,记录调用者应该期望什么以及实现者应该期望什么.基本上想到双方的合同,并记录下来.特别是文档无效约束 – 方法是否接受null?他们应该保证永远不会返回null吗?>设计可测性,您的框架和其他使用您的框架.框架的哪些位可以合理地用于测试代码,哪些应该被嘲笑?>从一开始就使用自己的框架.构建示例应用程序,其他人可以使用它来了解框架.