Java程序员应当知道的10个面向对象设计原则( 四 )
这个设计原则的亮点在于任何被DI框架注入的类很容易用mock对象进行测试和维护 , 因为对象创建代码集中在框架中 , 客户端代码也不混乱 。 有很多方式可以实现依赖倒置 , 比如像AspectJ等的AOP(Aspect Oriented programming)框架使用的字节码技术 , 或Spring框架使用的代理等 。
原则6:优先利用组合而非继承
如果可能的话 , 优先利用组合而不是继承 。 一些人可能会质疑 , 但我发现 , 组合比继承灵活得多 。 组合允许在运行期间通过设置类的属性来改变类的行为 , 也可以通过使用接口来组合一个类 , 它提供了更高的灵活性 , 并可以随时实现 。 《Effective Java》也推荐此原则 。
原则7:里氏代换原则(LSP)
根据该原则 , 子类必须能够替换掉它们的基类 , 也就是说使用基类的方法或函数能够顺利地引用子类对象 。 LSP原则与单一职责原则和接口分离原则密切相关 , 如果一个类比子类具备更多功能 , 很有可能某些功能会失效 , 这就违反了LSP原则 。 为了遵循该设计原则 , 派生类或子类必须增强功能 。
推荐阅读
- 网游|颠覆你认知的网游土豪,程序员加班为他改游戏,还送专属服务器
- 网易|永劫无间诡异宕机事件:网易机房过热,程序员竟然祭出了干冰?
- 三国杀|三国杀最应当删掉的一张牌,直接改变了游戏本质!
- 剑网3|剑网三:高DPS应当是玩家自己的追求,不是他人划水的理由
- 坦克大战|FC游戏埋藏了三十年的秘密,《坦克大战》隐藏着一封程序员的血书
- 梦幻西游|梦幻西游:程序员修复显示BUG用力过猛,现在武器亮的有点晃眼
- 我的世界|我的世界:Java种子新出炉,内陆蘑菇岛算什么,这些种子它不香?
- 塞尔达传说|Switch下载超200万,程序员才3人,这游戏真能比塞尔达还好玩?
- 程序员|公司新招程序员,入职2天看了下电脑配置,2天后果断辞职
- Java|Java 地位不保,落后已成定局 ?| 10月编程语言排行