接口和实现
接口与实现分离。
Parnas 原则:
- 必须向目标用户,提供用来有效使用组件所必须的服务信息。
- 必须向软件组件开发者提供用来执行组件职责,所必需的信息。
中国人翻译的书太差了。。。再也不买书了,看电子书吧。。
通常使用接口的时候,需要使用到很多的额外数据,并且每个不同的实现都有不同的要求,那么这样的问题该怎样解决呢?
目前有3中方式:
1。 使用IOC方式,这样需要的数据从配置中注入,但是显然仅仅适用于插件开发的时候。
2。 使用Params[] ,这样也不错,可以有效的提供数据,例如在使用公有的记录日志的方法。但是不够面向对象。
3。 使用一个简单的对象,这种只适用于目的性明显的情况。
4。 使用Context--hashtable,这种比较复杂,但是可以很好的解决大多数情况,并且对于扩展性也不错,可以在扩展整个流程时,传输需要的数据。