JAVA设计模式-设计原则(二)开闭原则

本文探讨了如何通过设计原则,特别是'对扩展开放,对修改关闭'的原则,来提升软件系统的可扩展性和维护性。通过实例分析输入法皮肤的设计,介绍了如何利用抽象类和接口实现这一目标,确保在需要扩展功能时,不需要改动原有代码。同时,提到了聚合关系在软件设计中的应用,以增强软件组件的独立性和复用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提高软件系统维护性和可复用性、增加软件的可扩展性和灵活性。根据设计原则开发程序

1.概述

    对扩展开放,对修改关闭

    在程序需要进行拓展时候,不修改原有的代码,实现一个热插拔效果。为了程序的扩展性好。易于维护和升级

    想要达到这样效果,我们需要使用接口和抽象类

2.案例

   以输入法皮肤为例 

   分析:输入发皮肤分为 默认皮肤 、客户自定义两种分类,最终展示给用户

   思考:这里选择抽象类方式进行设计(如果某一些类的实现有共通之处,则可以抽象出来一个抽象类,让抽象类实现接口的公用的代码,而那些个性化的方法则由各个子类去实现)

          需要设计一个公共抽象类,抽取子类共通之处,即显示

          设计默认皮肤类、皮肤类1、皮肤类2等等

          设计输入法类,最终决定使用哪种类型的皮肤

     上代码:

公共抽象类,抽取子类共通之处:

默认皮肤类:继承抽象类,重写显示方法

 自定义一皮肤类:继承抽象类,重写显示方法

 输入法类:需要展示给用户

补充:以上代码中提到的聚合关系

          聚合关系是强关联关系,是整体与部分之间的关系

          聚合关系是通过成员对象来实现,其中成员对象是整体对象的一部分,但是成员对象可以脱衣整体对象而独立存在

 测试类:测试代码实现

 

源码:

以上源码下载地址   https://download.youkuaiyun.com/download/chengxuyuanjava123/35100631icon-default.png?t=L9C2https://download.youkuaiyun.com/download/chengxuyuanjava123/35100631

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mhi()

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值