美文网首页java
java学习之设计原则开闭原则

java学习之设计原则开闭原则

作者: 是杨敬华啊 | 来源:发表于2022-02-14 11:07 被阅读0次

当你知道的越多才发觉自己的渺小和无知。但是我们随生如蝼蚁当立鸿鹄之志。程序员饱和了吗?不不,是低级的程序员饱和了。高手永远都缺。励志成为全栈工程师,成为高级程序员。

当我们在设计软件的时候会大量的应用设计原则和设计模式。优秀的软件设计合理方便维护和拓展。

开闭原则是编程中最基础、最重要的设计原则

一个软件实体,如类,模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节。

当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化

编程中遵循其它原则,以及使用设计模式的目的就是遵循开闭原则。

举例我们的输入法支持个性化皮肤。假如入我们不遵循设计原则。那么有一个新的皮肤就要重写修改大量的代码。软件不易维护。(因为我也是刚学理解不是很深)但是我们使用开闭原则的话就会好的多。代码实例

package main;

/**

* @Title设计原则开闭原则案例

* @Descriotion 抽象皮肤类

* @Time2022年2月14日 23:29:41

* @Author:yjh

*/

public abstract class AbstractSkin {

// 显示的方法

public abstract void display();

}

首先我们定义一个顶级的抽象类。由他进行衍生出皮肤子类。下面是皮肤子类。我定义了两个

package main;

/**

* @Title设计原则开闭原则案例

* @Descriotion 默认皮肤类

* @Time2022年2月14日 23:29:41

* @Author:yjh */

public class DefaultSkin extends AbstractSkin{

@Override public void display() {

System.out.println("默认皮肤类");

}

}

定义默认皮肤类。他是继承自顶级的抽象类的。也就是说具体的皮肤类是由顶级类派生的。

接下来是自定义皮肤类

package main;

/**

* @Title设计原则开闭原则案例

* @Descriotion 自定义皮肤类

*  @Time2022年2月14日 23:29:41

*  @Author:yjh

*/

public class DiySkin extends AbstractSkin{

@Override

    public void display() {

System.out.println("自定义皮肤类");

}

}

接下来创建一个聚合类。从下面的代码我们是可以发现的我创建的搜狗输入法类实例化了顶级抽象类。并设置了setter方法这完全符合开闭原则中的模块和函数应该对扩展开放,对修改关闭

package main;

/**

* @Title设计原则开闭原则案例

* @Descriotion 聚合皮肤类搜狗输入法

*  @Time2022年2月14日 23:29:41

*  @Author:yjh

*/

public class SougouInput {

private AbstractSkin skin;

public void setSkin(AbstractSkin skin) {

this.skin = skin;

}

public void display(){

skin.display();

}

}

当我们写完这些就可以写一个测试类了。

测试类的代码如下

package main;

/**

* @Title设计原则开闭原则案例

* @Descriotion 测试类

*  @Time2022年2月14日 23:29:41

*  @Author:yjh

*/

public class Client {

public static void main(String[] args) {

//        1.创建搜狗输入法对象

        SougouInput sougouInput =new SougouInput();

//        2.创建皮肤对象

        DefaultSkin skin =new DefaultSkin();

//        3.将皮肤设置到输入法中。

        sougouInput.setSkin(skin);

//        4.显示皮肤

        sougouInput.display();

}

}

因为是刚学理解还不太深刻甚至还有点偏差。有不对的地方希望大家多多指正。

github地址:https://github.com/yangjinghua01/shejimoshi

其中有两个包一个叫main一个叫expan都是为了学习开闭原则写的。

相关文章

  • [Code Design] 六大设计原则之"开闭原则&

    六大设计原则之开闭原则 定义 开闭原则是java世界里最基础的设计原则,它指导我们如何建立一个稳定,灵活的系统。开...

  • 面向对象设计原则(二)开闭原则

    面向对象设计原则之开闭原则 开闭原则是面向对象的可复用设计的第一块基石,它是最重要的面向对象设计原则。 开闭原则的...

  • 从一个例子看开闭原则

    什么开闭原则? 开闭原则(Open Closed Principle)是Java世界里最基础的设计原则,它指导我们...

  • 设计原则-开闭原则

    开闭原则(OCP) 开闭原则的定义 开闭原则是java世界里最基础的设计原则,它指导我们如何建立一个稳定,灵活的系...

  • 开闭原则(OCP)

    开闭原则的定义 开闭原则是java世界里最基础的设计原则,它指导我们如何建立一个稳定,灵活的系统。开闭原则定义如下...

  • 开闭原则

    个人博客原文:开闭原则 设计模式六大原则之六:开闭原则。 简介 姓名 :开闭原则 英文名 :Open Closed...

  • 6大设计原则-开闭原则

    开闭原则 开闭原则是java世界里最基础的设计原则,他指导我们如何建立一个稳定、灵活的系统,先来看开闭原则的定义:...

  • 设计模式

    设计模式之六大原则 1,开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭,...

  • 【设计模式】依赖倒转原则

    【设计模式】依赖倒转原则 以下内容来自【Java设计模式】 如果说开闭原则是面向对象设计的目标,那么依赖倒转原则就...

  • 面向对象基本原则 - 开闭原则

    开闭原则 - (让程序更稳定,更灵活) 上一篇:面向对象基本原则 - 单一职责 开闭原则是java里最基础的设计原...

网友评论

    本文标题:java学习之设计原则开闭原则

    本文链接:https://www.haomeiwen.com/subject/uuwklrtx.html