对扩展开放_对修改封闭

最近在很多场合都看见设计模式的影子,一直以来,都投入主要时间在搞算法与数据结构,很来发现设计模式真的很重要。有的时候代码的可维护、可重用、可扩展确实胜过单纯的算法效率高。所以拾起大牛书籍《大话设计模式》同时参考网上诸大牛的博客,开始我的设计模式之旅。

今天先介绍一下开放封闭模式。

概念:

软件实体(类、函数、接口等)可以扩展,但不能修改。

解释:  开放是指可扩展,封闭是指不能修改。在架构设计类时,要考虑该类可能要完成的功能以及今后要添加的功能,写好之后就不再修改了。如果需求有变只需增加派生出其他的子类。原来的代码尽可能不动,但完全不修改往往是不可能的。无论模块怎样封闭,都会存在一些与之无法封闭的变化,既然不可能是完全变化封闭,设计人员必须对他设计的模块要应对哪些变化做出选择。他必须先抽象出变化的种类。然后构造抽象类来隔离那些变化。 假设有一个加法类,能够完成当前所有的功能,但当需要减法时又必须修改加法类,这就违反了开放封闭原则,可以尽可能的设计一个抽象的运算类,然后加法、减法类都继承这个抽象的运算类,从而避免修改加法。 再次强调:可以扩展,但不能修改;或者,开放是指可扩展,封闭是指不能修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值