go

设计模式 Golang

设计模式 Golang 这篇blog用来记录自己学习设计模式的过程,我的目的是需要搞懂,为何而用(why)以确定使用场景,如何使用(how)以搞懂怎么用G

如何评价

如何评判代码质量 首先,我们应当避免采用抽象词汇来评判代码质量,例如我们要避免说代码优雅、好、坏等等,而是应当有目的性,以及功能性的去评判代码

四大特性以及设计模式生态系统

面向对象四大特性 封装 常用的access specifier是private, public, protected这些。这个与访问权限是相关的,就是

创建型 单例设计模式

为什么需要单例 一个类只允许创建一个对象。 解决访问资源冲突,有些资源只能单一访问。在我们不想加锁的情况,可以通过只允许创建单一对象来访问。 节省

创建型 工厂模式

为什么需要工厂模式 一般来说工厂模式下面还有更加细分的类型,简单工厂、工厂方法和抽象工厂。 一般来说工厂模式最主要的作用就是根据输入变量或者配置

创建型 建造者模式

为什么需要建造者模式 很多时候我们创建了类的对象,或者创建以后一般会定义set函数进行修改,这种思路一般是okay的,但是有下面这些特殊情况,

创建型 原型模式

为什么需要原型模式 最主要应对的场景是对象创建成本比较大,同一个类的不同对象之间如果差别不大,例如大部分字段值可能相同,这种情况下可以通过复制

结构型 代理模式

为什么需要代理模式 结构型的设计模式基本都是做的在不改变基本类的情况修修补补,或者增加功能。可能有个疑问,那为什么不直接在原来类的基础上直接增

结构型 桥接模式

为什么需要桥接模式 桥接模式主要是分离抽象和实现部分,两部分可以独立扩展。 桥接模式模式最常用的地方应该是驱动实现吧,例如业务程序可以去调动驱动

结构型 装饰器模式

为什么需要装饰器模式 装饰器模式在python中很常见到,这种设计模式相当于给原有的类套上马甲,让返回的新类拥有更多的功能。这类用作马甲的类一