【设计模式】软件设计原则

编程入门 行业动态 更新时间:2024-10-18 02:24:48

【设计模式】软件设计<a href=https://www.elefans.com/category/jswz/34/1769377.html style=原则"/>

【设计模式】软件设计原则

1. 软件设计原则:

为了提高系统软件的可维护性、可复用性、可扩展性和灵活性

1.1 开闭原则:

对扩展开放,对修改关闭 (热插拔)

实现方式: 通过定义接口和实现类的方式实现开闭原则,我们再进行程序扩展时,不需要修改原代码,只需要再给该接口重新派生一个实现类即可

案例:

以搜狗输入法换皮肤为例,介绍开闭原则的使用

  1. 首先定义一皮肤抽象类,其他具体的皮肤实现类继承皮肤抽象类,重写其 display 展示方法
/*** @description: 搜狗输入法抽象皮肤类* @author: Liuwanqing* @date: 2022-11-17 13:12*/
public abstract class AbstractSkin {public void display(){System.out.println("展示抽象皮肤");}
}
  1. 定义搜狗输入法默认皮肤类,继承抽象类,重写方法
/*** @description: 搜狗输入法默认皮肤类* @author: Liuwanqing* @date: 2022-11-17 13:14*/
public class DefaultSkin extends AbstractSkin{public void display(){System.out.println("展示默认的皮肤");}
}
  1. 定义搜狗输入法自定义皮肤类,继承抽象类,重写方法
/*** @description: 我自定义的皮肤类* @author: Liuwanqing* @date: 2022-11-17 13:14*/
public class WanqingSkin extends AbstractSkin{public void display(){System.out.println("展示我自定义的皮肤");}
}
  1. 定义搜狗输入法聚合类,其具有抽象类对象,并且具有展示方法
/*** @description: 搜狗输入法,用于聚合皮肤类* @author: Liuwanqing* @date: 2022-11-17 13:16*/
public class SouGouInput {private AbstractSkin skin;public void setSkin(AbstractSkin skin){this.skin = skin;}public void display(){skin.display();}
}
  1. 定义测试类,即客户端调用类,其为聚合类设置皮肤,并调用 display 方法
/*** @description: 测试类* @author: Liuwanqing* @date: 2022-11-17 13:18*/
public class Client {public static void main(String[] args) {SouGouInput souGouInput = new SouGouInput();DefaultSkin skin = new DefaultSkin();souGouInput.setSkin(skin);souGouInput.display();}
}

体会上述案例中展示出的开闭原则: 当我们的客户端需要新增一皮肤时,只需要重写一新的皮肤类,继承抽象皮肤类,我们只需要在客户端更换一下调用,而不需要修改原有代码,实现了对扩展开放,对修改关闭

更多推荐

【设计模式】软件设计原则

本文发布于:2024-03-23 16:25:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1740292.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:原则   模式   软件

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!