- 博客(16)
- 收藏
- 关注
原创 毅四捕Go设计模式笔记——桥接模式
桥接模式(Bridge Pattern)桥接模式是一种结构型设计模式,它的主要目的是将抽象部分与它的实现部分解耦,使它们都可以独立的变化。通过使用组合而非继承的方式,桥接模式结合了两个独立的维度,让它们可以独立扩展而不是在两者之间建立静态的继承关系。
2024-04-06 19:15:00
863
原创 毅四捕Go设计模式笔记——建造者模式
建造者模式用来解决复杂对象的构建问题。当一个对象的构建过程复杂,包含多个组成部分,且每部分均可按不同的顺序和配置组合时,直接实例化该对象会导致构造方法非常庞大,并且难以理解。使用建造者模式可以将一个复杂对象的构建过程封装在一个单独的Builder类中,分步骤进行构建,并允许使用不同的构建过程生成不同表现形式的对象。此外,由于建造者模式对构建过程进行了细致的管理,因此容易对构建过程和所产生的对象实例进行测试和验证。建造者模式提供了一个灵活而强大的方式来构建复杂的对象,同时让代码保持清晰,提高了代码的可读性。
2024-04-04 20:15:00
609
原创 毅四捕Go设计模式笔记——原型模式
原型模式主要用来解决对象的创建问题,特别是当直接创建对象的成本比较高时(例如,需要复杂的初始化过程,或是创建一个和已存在对象一样的实例)。:在Java中任何继承自Object类的对象都已经实现了clone()方法,可以用来作为对象副本的创建手段。然而,使用原型模式需小心处理克隆对象与原对象之间的关系,特别是对复杂对象或包含其他对象引用时的深浅拷贝问题。原型模式通过复制一个已经存在的对象,避免了新对象创建的开销,尤其是当创建的过程复杂或者成本较高时。———————————这是分割线———————————
2024-04-03 17:40:06
602
原创 毅四捕Go设计模式笔记——抽象工厂模式
在Spring中,BeanFactory接口充当抽象工厂模式的角色,允许创建不同类型的bean,而具体的ApplicationContext实现可以看做是具体的工厂实现。通过这种方式,客户端代码只需依赖于抽象工厂和产品的接口,而无需关心具体的产品类。:在测试环境下,系统可能需要使用模拟对象而不是实际的对象,抽象工厂模式可以在测试时切换使用模拟的工厂实现以返回模拟对象。这样一来,当新增或替换产品族时,只需提供一个新的具体工厂实现,客户端代码无需改动,从而达到解耦合和易于扩展的目的。
2024-04-02 18:35:26
1273
原创 毅四捕Go设计模式笔记——工厂方法模式
工厂方法模式有利于产品种类的扩展,只需要添加对应的产品类和具体工厂类即可扩展系统,而无需修改现有的代码,符合“开闭原则”。同时,它也增加了系统的复杂性,并可能增加系统中类的数量,每增加一个产品就可能需要增加一个具体工厂类。
2024-04-01 18:44:23
1014
1
原创 毅四捕Go设计模式笔记——简单工厂模式
使用时需要注意,随着产品类型的增加,工厂类可能会变得臃肿,难以维护,这时候可以考虑使用更复杂的设计模式,如工厂方法模式或抽象工厂模式,来提供更灵活的对象创建机制。客户端仅需要知道所需产品类型的参数,而不需要知道具体的产品类,从而简化了客户端的实现。简单工厂模式旨在解决对象创建的直接耦合依赖问题,它通过封装创建对象的代码来减少客户端与具体产品类之间的耦合。用于根据不同参数创建不同类实例的场景:当有多个类对应于多个可能发生的情况(如不同的配置选项或用户输入)时,简单工厂可以根据输入来决定返回哪个类的实例。
2024-03-31 20:15:00
554
原创 毅四捕Go设计模式笔记——单例模式
单例模式主要解决的是如何在整个程序空间中保证一个类只有一个实例,并提供一个全局访问点。这对于控制资源的访问,比如配置信息、硬件接口等,是非常有用的。通过保证只有一个实例,避免了对资源的重复请求或冲突。
2024-03-29 17:08:19
551
原创 毅四捕Go自建云笔记手册
由于在使用各种商业云笔记时遇到过各种不便,一直未能找到适合自己的云笔记,所以决定基于各种工具搭建一个云笔记来使用。笔记客户端选用VS Code,既有简便灵活的用户界面,也有丰富的插件。安装好Markdown、LaTex、Python等插件后,可以灵活的使用文本来编辑格式各样的笔记,也可以实时运行编辑的代码、脚本。数据存储和版本管理选用Git来实现,主要是考虑到便于协作、易于实现。另外,Git可以只依赖本地数据做编辑,这样离线场景也可以正常使用。
2024-03-20 00:06:47
1738
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人