原则"/>
【设计模式】软件设计原则
1. 软件设计原则:
为了提高系统软件的可维护性、可复用性、可扩展性和灵活性
1.1 开闭原则:
对扩展开放,对修改关闭 (热插拔)
实现方式: 通过定义接口和实现类的方式实现开闭原则,我们再进行程序扩展时,不需要修改原代码,只需要再给该接口重新派生一个实现类即可
案例:
以搜狗输入法换皮肤为例,介绍开闭原则的使用
- 首先定义一皮肤抽象类,其他具体的皮肤实现类继承皮肤抽象类,重写其 display 展示方法
/*** @description: 搜狗输入法抽象皮肤类* @author: Liuwanqing* @date: 2022-11-17 13:12*/
public abstract class AbstractSkin {public void display(){System.out.println("展示抽象皮肤");}
}
- 定义搜狗输入法默认皮肤类,继承抽象类,重写方法
/*** @description: 搜狗输入法默认皮肤类* @author: Liuwanqing* @date: 2022-11-17 13:14*/
public class DefaultSkin extends AbstractSkin{public void display(){System.out.println("展示默认的皮肤");}
}
- 定义搜狗输入法自定义皮肤类,继承抽象类,重写方法
/*** @description: 我自定义的皮肤类* @author: Liuwanqing* @date: 2022-11-17 13:14*/
public class WanqingSkin extends AbstractSkin{public void display(){System.out.println("展示我自定义的皮肤");}
}
- 定义搜狗输入法聚合类,其具有抽象类对象,并且具有展示方法
/*** @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();}
}
- 定义测试类,即客户端调用类,其为聚合类设置皮肤,并调用 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();}
}
体会上述案例中展示出的开闭原则: 当我们的客户端需要新增一皮肤时,只需要重写一新的皮肤类,继承抽象皮肤类,我们只需要在客户端更换一下调用,而不需要修改原有代码,实现了对扩展开放,对修改关闭
更多推荐
【设计模式】软件设计原则
发布评论