go的三大基本特性
pattern
上面例子里右边更好。因为左边违反了依赖反转。BMW依赖了v6eng的具体实现。
面向对象要有三大特征
设计代码时遵循五大原则
结构嵌套结构依赖于具体的实现
结构嵌套方法依赖于接口
BM嵌套v6Engine,车里只有一种具体的引擎
BM嵌入engine接口,车里可以安装不同的引擎符合依赖反转原则
单一功能原则
作图如果有三轮车新加入要重新定义三轮车结构和方法不对已经实现的Car和bike做修改符合开闭原则
go的接口自动符合里氏替换
单一功能原则
开闭原则:对扩展开放,对修改关闭。
里式替换原则:可以使用子类对象替换父类对象而功能不变。
接口隔离原则
依赖反转原则