首页 > 编程知识 正文

开闭原则的含义,设计七大表现手法

时间:2023-05-05 14:57:48 阅读:168585 作者:4980

设计模式七原则的开闭原则开闭原则是编程中最基础、最重要的设计原则,是设计模式的核心。

开合原则是对扩张开放,对修正封闭。

这意味着,如果需要更改软件,则通过尽可能扩展软件实体行为的方式来实现,而不是基于现有代码进行修改。

栗的假设是,现在我们希望有一个能根据传入的班级输出该类型的班级:

public class OCP { publicstaticvoidmain (string [ ] args ) { Worker worker=new Worker; worker.work(newa ) ); worker.work(newb ) ); } class worker { public void work (base base ) if ) baseinstanceofa ) { print1; }elseif(baseinstanceofb ) { print2; } } public void print1() { System.out.println ) (这是a类); } public void print2((system.out.println ) ) (这是b类); }要添加class base { } classaextendsbase { } classbextendsbase { }类c,必须修改代码。

public class OCP { publicstaticvoidmain (string [ ] args ) { Worker worker=new Worker; worker.work(newa ) ); worker.work(newb ) ); worker.work(newc ); } class worker { public void work (base base ) if ) baseinstanceofa ) { print1; }elseif(baseinstanceofb ) { print2; } else if (基本实例) {打印3 }; } } public void print1() { System.out.println ) (这是a类); } public void print2((system.out.println ) ) (这是b类); } public void print3() { System.out.println ) (这是c类); } class base { } classaextendsbase { } classbextendsbase { } classcextendsbase { }有许多更改,可以修改Worker类的work逻辑,使一个类

以下代码遵循开闭原则。

class worker { public void work (base base ) { base.print; } abstract class base { publicabstractvoidprint (; } classaextendsbase { @ overridepublicvoidprint () { System.out.println ) (这是a类) ); } classbextendsbase { @ overridepublicvoidprint () { System.out.println ) (这是b类) ); } classcextendsbase { @ overridepublicvoidprint () { System.out.println ) (这是c类) ); }当前代码将Base作为抽象类,并让子类重写其print方法。 如果需要添加新功能,只需继承Base类即可。 Worker类的work方法也只是调用Base的print方法,新功能不会强制进行更改。 对扩张开放,对修正关闭。 我是http://ww .

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。