编程怎样做到对扩展开放对修改关闭

设计者是否强硬,以及项目急不急。

■网友
【编程怎样做到对扩展开放对修改关闭】 可以看看代码大全2
一般是以功能模块为边界,对外部用接口扩展,对内的方法全部为私有,例如这样:
java: 原始代码:interface IMyInterface { void func();}class MyClass implements IMyInterface { private void myFunc(){ ... }}扩展代码:interface IMyInterfaceExt { void funcExt();}class MyExtClass extends MyClass implements IMyInterfaceExt { private void myFuncExt(){ ... }}这样扩展出来的功能对外funcExt不会影响到你之前写过的代码,而扩展出来的对内myFuncExt不会影响到你对外扩展功能。
实际项目中这种情况不多见,因为架构在早期不可能预见所有的业务场景,大部分的代码多少会有耦合,一旦改就会涉及内部逻辑和外部逻辑一起调整。但是基于接口的代码扩展一直是一条教科书式的原则。

■网友
谢邀
《设计模式》以及《重构》这两本书都挺好的。

■网友
用好访问控制符就好了…


    推荐阅读