设计模式(4) --里氏替换原则

简介: 设计模式(4) --里氏替换原则

产生原因:继承时子类重写引起的问题


1dc618a0ed9580ce8bfa6facb208c08f.png


什么是里氏替换原则


5d4c6812c8535adbb050f4ddf2e1bce8.png

看了解释更不知道啥意思。其实关键就是一句话 子类中尽量不要去写重写父类已经实现的方法,可以通过聚合,组合,依赖来解决问题.


举例说明


不遵循里氏替换原则的案例


类图

1dc618a0ed9580ce8bfa6facb208c08f.png

代码

5d4c6812c8535adbb050f4ddf2e1bce8.png

运行结果:

46a9d80a6e05e4e3b19d57a0ee70bcdf.png

显然,用户可能会混淆子类和父类重写方法的结果!!!!


改进方案


类图

1dc618a0ed9580ce8bfa6facb208c08f.png

代码

5d4c6812c8535adbb050f4ddf2e1bce8.png

运行结果:

46a9d80a6e05e4e3b19d57a0ee70bcdf.png


完美


相关文章
|
5月前
|
设计模式 Java 开发者
Java设计模式七大原则之里氏替换原则
Java设计模式七大原则之里氏替换原则
29 0
|
设计模式
设计模式七大原则——里氏替换原则
设计模式七大原则——里氏替换原则
设计模式七大原则——里氏替换原则
|
设计模式
设计模式(六)之里氏替换原则
里氏替换原则,为继承定义规范。 里氏替换原则有如下特点:代码共享,减少创建类的工作量、提高代码的重用性、提高代码的可扩展性、提高产品代码的开放性、继承侵入性 只要继承,必须拥有父类的内容、降低代码的灵活性,子类必须拥有父类的属性和方法、增强耦合性。
170 0
设计模式(六)之里氏替换原则
|
设计模式 Java
【Java设计模式】如何正确的使用继承?里氏替换原则的使用
【Java设计模式】如何正确的使用继承?里氏替换原则的使用
【Java设计模式】如何正确的使用继承?里氏替换原则的使用
|
设计模式
【设计模式】软件设计七大原则 ( 里氏替换原则 | 代码示例 | 类示例 | 方法入参示例 | 方法返回值示例 )(一)
【设计模式】软件设计七大原则 ( 里氏替换原则 | 代码示例 | 类示例 | 方法入参示例 | 方法返回值示例 )(一)
94 0
|
设计模式
【设计模式】软件设计七大原则 ( 里氏替换原则 | 代码示例 | 类示例 | 方法入参示例 | 方法返回值示例 )(三)
【设计模式】软件设计七大原则 ( 里氏替换原则 | 代码示例 | 类示例 | 方法入参示例 | 方法返回值示例 )(三)
83 0
|
设计模式
【设计模式】软件设计七大原则 ( 里氏替换原则 | 代码示例 | 类示例 | 方法入参示例 | 方法返回值示例 )(二)
【设计模式】软件设计七大原则 ( 里氏替换原则 | 代码示例 | 类示例 | 方法入参示例 | 方法返回值示例 )(二)
75 0
|
设计模式
【设计模式】软件设计七大原则 ( 里氏替换原则 | 代码示例 | 类示例 | 方法入参示例 | 方法返回值示例 )(三)
【设计模式】软件设计七大原则 ( 里氏替换原则 | 代码示例 | 类示例 | 方法入参示例 | 方法返回值示例 )(三)
88 0
|
设计模式
【设计模式】软件设计七大原则 ( 里氏替换原则 | 定义 | 定义扩展 | 引申 | 意义 | 优点 )
【设计模式】软件设计七大原则 ( 里氏替换原则 | 定义 | 定义扩展 | 引申 | 意义 | 优点 )
171 0
|
设计模式
设计模式—— 二:里氏替换原则
设计模式—— 二:里氏替换原则
99 0
设计模式—— 二:里氏替换原则