首页 / 设计模式 / 设计模式六大原则之五:开闭原则
设计模式六大原则之五:开闭原则
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了设计模式六大原则之五:开闭原则,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1846字,纯文字阅读大概需要3分钟。
内容图文
1 基本介绍
开闭原则(OCP:Open Closed Principle):一个软件实体如类,模块和函数应该对扩展开放,对修改关闭。用抽象构建架构,用实现扩展细节。当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。
2 案例演示
public class Exer {
public static void main(String[] args) {
Coach coach = new Coach();
coach.execPlay(new Runner());
coach.execPlay(new Jumper());
}
}
class Coach {
public void execPlay(Sportsman man) {
if (man.playType == 1) {
execRun(man);
} else if (man.playType == 2) {
execJump(man);
}
}
public void execRun(Sportsman man) {System.out.println("去跑步");}
public void execJump(Sportsman man) {System.out.println("去跳");}
}
class Sportsman {
int playType;
}
class Runner extends Sportsman {
int playType = 1;
}
class Jumper extends Sportsman {
int playType = 2;
}
分析:
① 优点:简单易操作
② 违反开闭原则,即对扩展开放,对修改关闭。即当我们给类增加新功能时,尽量不要修改代码,或者尽可能少修改代码。
当我新增功能时上面的代码就会需要改动很多地方,优化:
public class Exer {
public static void main(String[] args) {
Coach coach = new Coach();
coach.execPlay(new Runner());
coach.execPlay(new Jumper());
coach.execPlay(new Swimer());
}
}
class Coach {
public void execPlay(Sportsman man) {
man.execPlay();
}
// public void execRun(Sportsman man) {System.out.println("去跑步");}
// public void execJump(Sportsman man) {System.out.println("去跳");}
}
abstract class Sportsman {
int playType;
public abstract void execPlay();
}
class Runner extends Sportsman {
public Runner {super.playType = 1;}
@Override
public void execPlay() {System.out.println("去跑步");}
}
class Jumper extends Sportsman {
public Jumper {super.playType = 2;}
@Override
public void execPlay() {System.out.println("去跳");}
}
// 新增功能
class Swimer extends Sportsman {
public Swimer {super.playType = 3;}
@Override
public void execPlay() {System.out.println("去游泳");}
}
内容总结
以上是互联网集市为您收集整理的设计模式六大原则之五:开闭原则全部内容,希望文章能够帮你解决设计模式六大原则之五:开闭原则所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。