西游记之设计模式原则——开放-封闭原则

本文通过一个具体的Java示例,展示了开放封闭原则的应用。该原则强调软件实体应当对扩展开放而对修改封闭,通过继承和多态实现这一目标。示例中,猴子类被扩展为六耳猕猴和孙悟空类,新增功能而不改变原有代码。

开放-封闭原则

——对扩展开放,对修改封闭

 1 package kaifangfenbi;
 2 
 3 class Monkey {
 4     public void PaShu() {
 5         System.out.println("我是猴子,我会爬树!");
 6     }
 7 }
 8 
 9 // 六耳猕猴
10 class LiuErMiHou extends Monkey {
11     public void ChangSheng() {
12         System.out.println("俺老孙可以长生不老!");
13     }
14 }
15 
16 public class KaiFangFenBi {
17 
18     public static void main(String[] args) {
19         // TODO Auto-generated method stub
20 
21         LiuErMiHou liuErMiHou = new LiuErMiHou();
22         System.out.println("六耳猕猴:");
23         liuErMiHou.PaShu();
24         liuErMiHou.ChangSheng();
25     }
26 }
View Code

运行结果:

六耳猕猴:
我是猴子,我会爬树!
俺老孙可以长生不老!

 

 1 package kaifangfenbi;
 2 
 3 class Monkey {
 4     public void PaShu() {
 5         System.out.println("我是猴子,我会爬树!");
 6     }
 7 }
 8 
 9 // 六耳猕猴
10 class LiuErMiHou extends Monkey {
11     public void ChangSheng() {
12         System.out.println("俺老孙可以长生不老!");
13     }
14 }
15 
16 class SunWuKong extends LiuErMiHou {
17     public void QuJing() {
18         System.out.println("俺老孙是去西天拜佛求经的!");
19     }
20 }
21 
22 public class KaiFangFenBi {
23 
24     public static void main(String[] args) {
25         // TODO Auto-generated method stub
26 
27         LiuErMiHou liuErMiHou = new LiuErMiHou();
28         System.out.println("六耳猕猴:");
29         liuErMiHou.PaShu();
30         liuErMiHou.ChangSheng();
31 
32         System.out.println("齐天大圣:");
33         SunWuKong sunWuKong = new SunWuKong();
34         sunWuKong.PaShu();
35         sunWuKong.ChangSheng();
36         sunWuKong.QuJing();
37     }
38 }
View Code

运行结果:

六耳猕猴:
我是猴子,我会爬树!
俺老孙可以长生不老!
齐天大圣:
我是猴子,我会爬树!
俺老孙可以长生不老!
俺老孙是去西天拜佛求经的!

添加新类孙悟空,而非修改六耳猕猴类!!!

 

转载于:https://www.cnblogs.com/meganhyy/p/8108056.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值