提高软件系统维护性和可复用性、增加软件的可扩展性和灵活性。根据设计原则开发程序
1.概述
对扩展开放,对修改关闭
在程序需要进行拓展时候,不修改原有的代码,实现一个热插拔效果。为了程序的扩展性好。易于维护和升级
想要达到这样效果,我们需要使用接口和抽象类
2.案例
以输入法皮肤为例
分析:输入发皮肤分为 默认皮肤 、客户自定义两种分类,最终展示给用户
思考:这里选择抽象类方式进行设计(如果某一些类的实现有共通之处,则可以抽象出来一个抽象类,让抽象类实现接口的公用的代码,而那些个性化的方法则由各个子类去实现)
需要设计一个公共抽象类,抽取子类共通之处,即显示
设计默认皮肤类、皮肤类1、皮肤类2等等
设计输入法类,最终决定使用哪种类型的皮肤
上代码:
公共抽象类,抽取子类共通之处:

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

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

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

补充:以上代码中提到的聚合关系
聚合关系是强关联关系,是整体与部分之间的关系
聚合关系是通过成员对象来实现,其中成员对象是整体对象的一部分,但是成员对象可以脱衣整体对象而独立存在
测试类:测试代码实现

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





