三,编程思想 - 348052148/learnGraph GitHub Wiki
- 面向过程
- 面向数据
- 面向对象编程 (对象编程
- 函数式编程
- 响应式编程
- 流编程
面向对象更加关注于名词的概念,这里函数式则是动词 比如,是我具有颜色,还是光使我有了颜色
- 这里重点讲面向对象编程 在知识图谱中,设计模式也是面向对象的内容,但是设计模式不仅仅适用于面向对象编程。其思想是可以被其他编程思想使用的 面向对象SOLID设计原则
- S -> 单一职责原则 增加凝聚 不遵守导致不必要的依赖
- O -> 开闭原则 对拓展开发,对修改关闭,优点 减少修改引入bug的可能(限制影响范围
- L -> 里斯替换原则 派生类能够完全替换父类(类似 契约设计
- I -> 接口隔离原则
- D -> 依赖倒置原则 (控制反转,依赖注入是对其的诠释 组合性是solid的目标 https://www.jdon.com/designpatterns/composability-solid.html
if else 的思考 https://www.jdon.com/artichect/ifelse.htm
- 编程原则
- KISS
- YAGNI
- 做只要能运行的事
- 分离关注
- 让事情DRY
- 为维护者编码
- 避免过早优化
- 最小化耦合
- 迪米特法则
- 用组合而不是继承
- 证交性
- 最大聚合
- 里斯替换
- 单一
- 开闭
- curly法则
- 童子军法则
- 命令查询分离 https://www.jdon.com/designpatterns/10-object-oriented-design-principles.html https://www.jdon.com/designpatterns/programming-principles.html AOP 面向切面编程 (设计模式动态代理模式的升华