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