设计模式要进行共性与可变性的分析,对共性进行抽象,同时对可变性进行封装,没有完美的设计模式,作为一名开发者要懂得取舍,触类旁通,开发出高内聚、低耦合、灵活性更高的软件产品
定义:一个软件实体应该对扩展开放,对修改关闭,即在不修改源代码的基础上扩展软件功能
本质思想:
开闭原则是目标,依赖倒置是手段
三层含义:
依赖倒置原则的核心就是面向抽象(抽象类或者接口)编程
定义:在一个软件产品中,父类对象可以出现的地方,都可以替换成它的子类对象,且不能发生错误和异常,里氏替换原则为良好的继承定义了规范
四层含义:
总结:子类可以扩展父类的功能,但是不能去改变父类原有的功能(遵循父类原有的基础特性,进行一系列的行为变化)
定义:在软件复用时,要尽量使用组合/聚合(has a)等关联关系来实现,即组合/聚合优先于继承
如果要使用继承关系,则必须严格遵循里氏替换原则
合成复用原则和里氏替换原则是相辅相成的,两者都是开闭原则的具体实现规范
设计模式用继承对行为变化进行分类,而不是使用继承来复用逻辑
定义:使用多个专门的接口,而不是使用单一的总接口;客户端调用者代码不应该依赖它不需要的接口
使用原则:
目标:在发生代码变更,接口变更的情况下,尽量做到影响程度最低
通过下面的例子加深理解,Person类想调用Stranger类执行一些逻辑
public class Person { private Friend friend = null; // 遵循迪米特法则 // 将Stranger类封装/隐藏了,Person类不知道Stranger类的存在 // 但是Friend类产生了callStrangerDoSomething这个透明的小方法 public void right(){ friend.callStrangerDoSomething(); } // 不遵循迪米特法则 // 与Stranger类耦合了 public void wrong(){ Stranger stranger = friend.getStranger(); stranger.doSomething(); } }
到此这篇关于Java设计模式中的七大原则详细讲解的文章就介绍到这了,更多相关Java设计模式原则内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
编程 | 2023-02-24 21:36
编程 | 2023-02-21 12:51
编程 | 2023-02-21 12:47
编程 | 2023-02-21 00:15
编程 | 2023-02-21 00:08
编程 | 2023-02-20 21:46
编程 | 2023-02-20 21:42
编程 | 2023-02-20 21:36
编程 | 2023-02-20 21:32
编程 | 2023-02-20 18:12
网友评论