[table]|1.取代程序中的 new、工厂和单粒 |无需接口|2.支持aop |有接口时使用java的proxy技术|3.支持mock |需要接口|4.支特受保护变化 |需要接口|5.隔离软件的不同组件 |需要接口 [/table]