设计模式七大原则(二)-开闭原则
开闭原则: 一个软件实体应当对扩展开放,对修改关闭。也就是说在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。(即不修改源代码)软件实体: 可以是一个软件模块、一个由多个类组成的局部结构或一个独立的类。原则的关键: 抽象画是开闭原则的关键。需要把可变性进行封装。...
·
开闭原则:
一个软件实体应当对扩展开放,对修改关闭。也就是说在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。(即不修改源代码)
软件实体:
可以是一个软件模块、一个由多个类组成的局部结构或一个独立的类。
原则的关键:
抽象化是开闭原则的关键。需要把可变性进行封装。即通过接口或者抽象类为软件实体定义一个相对稳定的抽象层,而将相同的可变因素封装在相同的具体实现类中。
比如说:
Area类用来计算矩形的面积
但是,如果矩形换成三角形、换成圆形呢,我们不可能换一个就对类进行修改。我们应该尽可能的扩展,对相同的可变因素进行提取、抽象,而避免对类进行修改。
比如针对这个问题,我们可以抽象一个形状Shape接口,里面有一个抽象化计算面积的方法,然后让其他形状的类去实现这个接口并重写这个计算面积的方法即可。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)