个人理解,接口和抽象类应用场景区别
接口和抽象类应用场景区别
2015年前我的理解:对共性行为的抽象使用接口,对代码的封装使用抽象类
2022年我的理解:对框架的拓展使用接口,对代码的精简用抽象类
比如
我现在的脱壳机支持32位 现在想要支持64位,则抽象出IUnpacker接口,分别创建Unpacker32和Unpacker64类实现该接口,这是对框架的扩展
Unpacker32和Unpacker64里都有相同行为的一些代码,此时抽象出UnpackerBase则最终可能是这样
Unpacker32:UnpackerBase,IUnpacker
Unpacker64:UnpackerBase,IUnpacker