📅 2019-12-23
今天继续打卡学习极客时间上的专栏“设计模式之美”,
本篇是专栏第22节的学习笔记,介绍面向对象设计原则中的迪米特法则(LOD)原则。
笔记
#
面向对象有很多经典的设计原则:
- SOLID5原则分别是
- 单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖反转原则(DIP)
- KISS - Keep It Simple, Stupid
- YAGNI - You aren’t gonna need it
- DRY - Don’t Repeat Yourself
- LOD - Law of Demeter(迪米特法则,又叫做最少知识原则)
LOD原则
#
“高内聚、弱耦合"是一个非常重要的设计思想,能够有效的提高代码的可读性和可维护性,能够缩小功能改动导致的代码改动范围。
“高内聚、弱耦合"实际上可以作为很多设计思想、设计原则的总纲,很多设计思想、设计原则都是以实现"高内聚、弱耦合"为目的,例如单一职责原则(SRP)、基于接口而非实现编程等等。
...📅 2019-12-20
今天继续打卡学习极客时间上的专栏“设计模式之美”,
本篇是专栏第21节的学习笔记,介绍面向对象设计原则中的DRY原则。
笔记
#
面向对象有很多经典的设计原则:
- SOLID5原则分别是
- 单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖反转原则(DIP)
- KISS - Keep It Simple, Stupid
- YAGNI - You aren’t gonna need it
- DRY - Don’t Repeat Yourself
- LOD - Law of Demeter(迪米特法则,又叫做最少知识原则)
DRY原则
#
DRY原则,中文译为不要重复自己,不要写重复代码,不要自己造轮子。
但实际上,重复的代码不一定违背DRY原则,而有些看似不重复的代码确可能违背DRY原则。
DRY原则也与代码的复用性相关。
...📅 2019-12-18
今天继续打卡学习极客时间上的专栏“设计模式之美”,
本篇是专栏第20节的学习笔记,介绍面向对象设计原则中的KISS原则和YAGNI原则。
笔记
#
面向对象有很多经典的设计原则:
- SOLID5原则分别是
- 单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖反转原则(DIP)
- KISS - Keep It Simple, Stupid
- YAGNI - You aren’t gonna need it
- DRY - Don’t Repeat Yourself
- LOD - Law of Demeter(迪米特法则,又叫做最少知识原则)
KISS原则
#
KISS原则直译过来就是"尽量保持简单"。
KISS原则是保持代码可读性和可维护性的重要手段,足够简单,也就意味着很容易读懂,这就让BUG不容易隐藏且更容易修复。
这个原则从另一个角度也给出了我们在做开发时不要过度设计,要学会用简单的方法解决复杂的问题。
...📅 2019-12-16
今天继续打卡学习极客时间上的专栏“设计模式之美”,
本篇是专栏第19节的学习笔记,介绍面向对象设计原则中的依赖反转原则(DIP)。
笔记
#
面向对象有很多经典的设计原则:
- SOLID5原则分别是
- 单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖反转原则(DIP)
- KISS - Keep It Simple, Stupid
- YAGNI - You aren’t gonna need it
- DRY - Don’t Repeat Yourself
- LOD - Law of Demeter(迪米特法则,又叫做最少知识原则)
依赖反转原则
#
依赖反转(DIP)与控制反转(IOC)、依赖注入(DI)有什么区别和联系呢?
...📅 2019-12-13
今天继续打卡学习极客时间上的专栏“设计模式之美”,
本篇是专栏第18节的学习笔记,介绍面向对象设计原则中的接口隔离原则。
笔记
#
面向对象有很多经典的设计原则:
- SOLID5原则分别是
- 单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖反转原则(DIP)
- KISS - Keep It Simple, Stupid
- YAGNI - You aren’t gonna need it
- DRY - Don’t Repeat Yourself
- LOD - Law of Demeter(迪米特法则,又叫做最少知识原则)
接口隔离原则
#
接口隔离原则: 接口的调用者(或使用者)不应该强迫依赖它不需要的接口。
我们可以把接口理解为下面三种东西:
...📅 2019-12-11
今天继续打卡学习极客时间上的专栏“设计模式之美”,
本篇是专栏第17节的学习笔记,介绍面向对象设计原则中的里氏替换原则。
笔记
#
面向对象有很多经典的设计原则:
- SOLID5原则分别是
- 单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖反转原则(DIP)
- KISS - Keep It Simple, Stupid
- YAGNI - You aren’t gonna need it
- DRY - Don’t Repeat Yourself
- LOD - Law of Demeter(迪米特法则,又叫做最少知识原则)
里氏替换原则
#
里氏替换原则: 子类对象能够替换程序中的父类对象出现的任何地方,并且保证原来程序的逻辑行为不变及正确性不被破坏。
从定义描述和代码实现上来看,多态和里氏替换原则有点类似,但它们关注的角度是不一样的。多态是面向对象一大特性,是一种语法,是一种代码实现的思路。
里氏替换是一种设计原则,用来指导继承关系中子类如何设计,子类的设计要保证在替换父类的时候,不改变原有程序的逻辑以及不破坏原有程序的正确性。
...📅 2019-12-09
今天继续打卡学习极客时间上的专栏“设计模式之美”,
本篇是专栏第16节的学习笔记,介绍面向对象设计原则中的开闭原则。
笔记
#
面向对象有很多经典的设计原则:
- SOLID5原则分别是
- 单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖反转原则(DIP)
- KISS - Keep It Simple, Stupid
- YAGNI - You aren’t gonna need it
- DRY - Don’t Repeat Yourself
- LOD - Law of Demeter(迪米特法则,又叫做最少知识原则)
开闭原则
#
开闭原则(Open Closed Principle): 即软件实体(模块、类、方法等)对扩展开发,对修改关闭。
通俗的理解即添加一个新的功能应该是在已有代码基础上扩展代码(新增模块、类、方法等),而非修改已有代码(修改模块、类、方法等)。
在GOF 23种经典设计模式中,大部分设计模式是为了解决代码的扩展性问题而存在的,主要遵从的设计原则就是开闭原则。
...📅 2019-12-06
今天继续打卡学习极客时间上的专栏“设计模式之美”,
本篇是专栏第15节的学习笔记,介绍面向对象设计原则中的单一职责原则。
笔记
#
面向对象有很多经典的设计原则:
- SOLID5原则分别是
- 单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖反转原则(DIP)
- KISS - Keep It Simple, Stupid
- YAGNI - You aren’t gonna need it
- DRY - Don’t Repeat Yourself
- LOD - Law of Demeter(迪米特法则,又叫做最少知识原则)
单一职责原则(SRP)
#
一个类或模块只负责完成一个职责(或功能)。单一职责原则是为了实现代码的高内聚、低耦合,提高代码的复用性、可读性、可维护性。
单一职责原则的定义中包含类
和模块
,对于模块可以从不同的范围理解:
...📅 2019-12-04
今天继续打卡学习极客时间上的专栏“设计模式之美”,
本篇是专栏第13, 14节的学习笔记,是专栏中介绍"面向对象"这一设计原则和设计思想的两节。
笔记
#
这两节分上、下两节主要介绍了面向对象分析(OOA)
、面向对象设计(OOD)
、面向对象编程(OOP)
。
...📅 2019-11-29
今天继续打卡学习极客时间上的专栏“设计模式之美”,
本篇是专栏第11, 12节的学习笔记,是专栏中介绍"面向对象"这一设计原则和设计思想的两节。
笔记
#
这两节分上、下两节主要介绍了在Java Web开发中盛行的传统的贫血模型开发模式,是典型的面向过程的编程风格;而基于充血模型的DDD开发模式,是面向对象的编程风格。
然后作者结合一个虚拟钱包系统的例子给出了两种开发模式的示例代码,只是示例代码略微简单,作者介绍的设计思路在示例代码中体现不大。
...