design-pattern-in-golang

module
v0.0.0-...-bd8c593 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 17, 2020 License: MIT

README

design-pattern-in-golang

设计模式学习笔记

学习设计模式,熟记一下两个原则:

  1. 面向接口编程(Program to an "interface", not an "implementation")
    • 使用者不需要知道数据类型、结构、算法的细节
    • 使用者不需要知道实现的细节,只需要知道提供的接口
  2. 组合优于继承(Favor "object composition" over "class inheritance")
    • 继承需要给子类暴露父类的设计和实现细节
    • 父类实现的改变会造成子类也需要改变
    • 继承更多的应该是为了多态,而不是增加代码的重用

设计模式的分类

设计模式分为三大类:

  • 创建型
  • 结构性
  • 行为型

其中:创建型设计模式解决的问题是"对象如何创建";结构模式解决的问题是"类或对象的组合或组装"的问题;行为模式是解决"类或对象之间的交互"的问题。

代理模式、桥接模式、装饰器模式和适配器模式的区别

代理模式、桥接模式、装饰器模式和适配器模式的代码结构相似,都可以称为wrapper模式。虽然结构相似,但是这四种模式的应用场景各不相同。

  • 代理模式:在不改变原始类接口的情况下,为原始类定义一个代理类,主要目的是访问控制,而不是加强功能。
  • 装饰器模式:在不改变原始类接口的情况下,对原始类的功能进行增强,并且支持多个装饰器嵌套使用。
  • 桥接模式:目的是将接口和实现分离,实现独立的演进
  • 适配器模式:作为一种事后补偿策略,提供与原始类不同的接口。

Directories

Path Synopsis
behavioral
structural

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL