设计模式
文章平均质量分 54
Golang设计模式
TwistedFater
这个作者很懒,什么都没留下…
展开
-
Golang设计模式(适配器模式)
模式定义适配器模式(Adapter Pattern) :将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。将现有接口或对象转换成客户端需要的接口模式结构适配器模式包含如下角色:Target:目标抽象类Adapter:适配器类Adaptee:适配者类Client:客户类对象适配器:类适配器:适用场景在以下情况下可以使用适配器模式:系统需要使用现有原创 2021-02-18 15:41:46 · 156 阅读 · 0 评论 -
Golang设计模式(装饰者模式)
模式定义装饰模式(Decorator Pattern) :动态地给一个对象增加一些额外的职责(Responsibility),就增加对象功能来说,装饰模式比生成子类实现更为灵活。其别名也可以称为包装器(Wrapper),与适配器模式的别名相同,但它们适用于不同的场合。根据翻译的不同,装饰模式也有人称之为“油漆工模式”,它是一种对象结构型模式。主要是给原始对象增强功能模式结构装饰模式包含如下角色:Component: 抽象构件ConcreteComponent: 具体构件Decorator原创 2021-02-18 14:37:12 · 290 阅读 · 1 评论 -
Golang设计模式(桥接模式)
模式定义桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。模式结构桥接模式包含如下角色:Abstraction:抽象类RefinedAbstraction:扩充抽象类Implementor:实现类接口ConcreteImplementor:具体实现类适用环境在以下情况下可以使用桥接模式:1.如果一个系统需要在构件的抽象化角色和原创 2021-02-18 11:43:39 · 169 阅读 · 0 评论 -
Golang设计模式(外观模式)
模式定义外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。模式结构外观模式包含如下角色:Facade: 外观角色SubSystem:子系统角色适用环境在以下情况下可以使用外观模式:1.当要为一个复杂子系统提供一个简单接口时可以使用外观模式。该接口可以满足大多数用户的需求,而且用户也可以原创 2021-02-01 10:38:58 · 238 阅读 · 0 评论 -
Golang设计模式(代理模式)
模式定义代理模式(Proxy Pattern) :给某一个对象提供一个代 理,并由代理对象控制对原对象的引用。代理模式的英 文叫做Proxy或Surrogate,它是一种对象结构型模式。在不改变原始类的情况下,通过引入代理类来给原始类添加功能,注意附加的功能和原始功能没有强关联模式结构代理模式包含如下角色:Subject: 抽象主题角色Proxy: 代理主题角色RealSubject: 真实主题角色适用环境1.业务的非功能性需求开发2.缓存3.rpc 等等。。。代码实现原创 2021-01-29 15:49:57 · 194 阅读 · 0 评论 -
Golang设计模式(原型模式)
模式定义原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。适用环境1、当一个系统应该独立于它的产品创建,构成和表示时。2、当要实例化的类是原创 2021-01-27 19:45:00 · 196 阅读 · 0 评论 -
SOLID设计原则
设计模式的五大原则:Single Responsibility Principle:单一职责原则Open Closed Principle:开闭原则Liskov Substitution Principle:里氏替换原则Interface Segregation Principle:接口隔离原则Dependence Inversion Principle:依赖倒置原则把这六个原则的首字母联合起来(两个 L 算做一个)就是 SOLID (solid,稳定的),其代表的含义就是这六个原则结合使原创 2021-01-26 15:58:13 · 86 阅读 · 0 评论 -
Golang设计模式(建造者模式)
模式定义模式结构适用环境代码实现原创 2021-01-27 17:09:19 · 207 阅读 · 0 评论 -
Golang设计模式(抽象工厂模式)
模式定义为了更清晰地理解工厂方法模式,需要先引入两个概念:产品等级结构 :产品等级结构即产品的继承结构,如一个抽象类是电视机,其子类有海尔电视机、海信电视机、TCL电视机,则抽象电视机与具体品牌的电视机之间构成了一个产品等级结构,抽象电视机是父类,而具体品牌的电视机是其子类。产品族 :在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组产品,如海尔电器工厂生产的海尔电视机、海尔电冰箱,海尔电视机位于电视机产品等级结构中,海尔电冰箱位于电冰箱产品等级结构中。抽象工厂模式原创 2021-01-27 16:29:07 · 476 阅读 · 0 评论 -
Golang设计模式(工厂方法模式)
模式定义工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。模式结构工厂方法模式包含如下角色:Product:抽象产品Concre原创 2021-01-26 20:44:51 · 272 阅读 · 0 评论 -
Golang设计模式(简单工厂模式)
模式定义简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。模式结构简单工厂模式包含如下角色:Factory:工厂角色工厂角色负责实现创建所有实例的内部逻辑Product:抽象产品角色抽象产品角色是所创建的所有对象的父类,负责描述所有实例所共有的公共接口原创 2021-01-26 19:29:13 · 188 阅读 · 0 评论