Dependency Injection

早先遍历 SOLID 的时候基本是直接略过了 DIP,原因是做 client 的 coding 比重较大,而对于 client 来说依赖的组件基本是固定的,因此没有太多需要 decouple 依赖关系的需求。

最近 library 的 coding 多了些,于是比较倾向于用 dependency injection 来 decouple 依赖关系了。
在比较简单的情况下,assembler 只要一些 glue code 就可以了,没什么必要用复杂的配置文件。

个人的感想是在下面几种情况下 dependency injection 比较简单和有效:

  1. 依赖的组件的接口非常简单。一到两个抽象方法且内部保持 stateless 的接口在设计、测试和整合方面都非常便利。
  2. 依赖的是常用的功能组件。比如 logging 或是简单 http client 往往会被数个依赖库使用,dependency injection 可以有效防止整合完成后的 client 中不得不同时使用数个功能迥异的 logging 组件的情况。
  3. 有可能需要用 strategy pattern 的情况。
Advertisements
This entry was posted in Computer and Internet, Programming and Algorithm and tagged , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s