Design Patterns

设计模式之美学习笔记22: 用迪米特法则(LOD)实现高内聚、松耦合

2019-12-23
Design Patterns

今天继续打卡学习极客时间上的专栏“设计模式之美”, 本篇是专栏第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)、基于接口而非实现编程等等。

...

设计模式之美学习笔记21: DRY原则

2019-12-20
Design Patterns

今天继续打卡学习极客时间上的专栏“设计模式之美”, 本篇是专栏第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原则也与代码的复用性相关。

...

设计模式之美学习笔记20: KISS原则和YAGNI原则

2019-12-18
Design Patterns

今天继续打卡学习极客时间上的专栏“设计模式之美”, 本篇是专栏第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不容易隐藏且更容易修复。 这个原则从另一个角度也给出了我们在做开发时不要过度设计,要学会用简单的方法解决复杂的问题。

...

设计模式之美学习笔记19: 依赖反转原则(DIP)

2019-12-16
Design Patterns

今天继续打卡学习极客时间上的专栏“设计模式之美”, 本篇是专栏第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)有什么区别和联系呢?

...

设计模式之美学习笔记18: 理解接口隔离原则(ISP)中的接口

2019-12-13
Design Patterns

今天继续打卡学习极客时间上的专栏“设计模式之美”, 本篇是专栏第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(迪米特法则,又叫做最少知识原则)

接口隔离原则 #

接口隔离原则: 接口的调用者(或使用者)不应该强迫依赖它不需要的接口。 我们可以把接口理解为下面三种东西:

...

设计模式之美学习笔记17: 里氏替换原则(LSP)与多态的区别

2019-12-11
Design Patterns

今天继续打卡学习极客时间上的专栏“设计模式之美”, 本篇是专栏第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(迪米特法则,又叫做最少知识原则)

里氏替换原则 #

里氏替换原则: 子类对象能够替换程序中的父类对象出现的任何地方,并且保证原来程序的逻辑行为不变及正确性不被破坏。 从定义描述和代码实现上来看,多态和里氏替换原则有点类似,但它们关注的角度是不一样的。多态是面向对象一大特性,是一种语法,是一种代码实现的思路。 里氏替换是一种设计原则,用来指导继承关系中子类如何设计,子类的设计要保证在替换父类的时候,不改变原有程序的逻辑以及不破坏原有程序的正确性。

...

设计模式之美学习笔记16: 设计原则之开闭原则(OCP)

2019-12-09
Design Patterns

今天继续打卡学习极客时间上的专栏“设计模式之美”, 本篇是专栏第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种经典设计模式中,大部分设计模式是为了解决代码的扩展性问题而存在的,主要遵从的设计原则就是开闭原则。

...

设计模式之美学习笔记15: 设计原则之单一职责原则(SRP)

2019-12-06
Design Patterns

今天继续打卡学习极客时间上的专栏“设计模式之美”, 本篇是专栏第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) #

一个类或模块只负责完成一个职责(或功能)。单一职责原则是为了实现代码的高内聚、低耦合,提高代码的复用性、可读性、可维护性。 单一职责原则的定义中包含模块,对于模块可以从不同的范围理解:

...

© 2024 青蛙小白