设计模式(三)工厂模式-编程思维

作用: 实现了创建者和调用者的分离 详细分类: 简单工厂模式(ioc) 工厂方法模式 抽象工厂模式 oop七大原则: 开闭原则:一个软件的实体应当对扩展开放,对修改关闭。 依赖倒转原则:要针对接口编程,不要针对实现编程。 迪米特法则:只与你直接的朋友通信,而避免和陌生人通信(要保持系统的清晰度) 工厂模式: 核心本质: 实例化对象不适用new,用工厂方法代替。 将选择实现类,创建对象统一管理和

设计模式(三)建造者模式-编程思维

建造者模式 建造者模式也属于创建模式,它提供了一种创建对象的最佳方式。 定义:将一个复杂的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 主要作用:在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象。 用户只需要给出指定复杂对象的类型和内容,建造者模式负责按顺序创建复杂对象(把内部的建造过程和细节隐藏起来) 例子: 工厂(建造者模式):负责制造汽车(组装过>程

设计模式(三)链式编程-编程思维

链式编程的核心思想: 通过静态内部类方式实现零件无序装配,这种方式使用更加灵活,更符合定义。内部有复杂对象的默认实现,使用时可以根据用户需求自由定义更改内容,并且无需改变具体的构造方式。就可以生产出不同复杂产品 案例: 比如:比如麦当劳的套餐,服务员(具体建造者)可以随意搭配任意几种产品(零件)组成一款套餐(产品)然后出售给客户。比上一种方式少了指挥者,主要因为第二种方式指挥者交给用户来操作,使

设计模式之模板模式-编程思维

模板模式概述 模板方法模式是一种行为设计模式, 它在超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。 比如:完成一件事情,有固定的数个步骤,但是每个步骤根据对象的不同,而实现细节不同;就可以在父类中定义一个完成该事情的总方法,按照完成事件需要的步骤去调用其每个步骤的实现方法。每个步骤的具体实现,由子类完成。 模板模式实现 下面以生活中做饭的栗子,用代码来实现。首先

设计模式之外观模式-编程思维

外观模式定义 外观模式是一种结构型设计模式, 能为程序库、 框架或其他复杂类提供一个简单的接口。 外观模式实现 场景:小明最近入坑理财了,就去炒股票,由于是新手,对证券金融理财等都没有建立完善的体系,导致最后血亏。后来听朋友建议去买基金,基金是由众多支股票组合而成的,由专业的基金经理管理投资,相当于买了一揽子股票,最终小明只需要在合适的时机买入和卖出,而不用过多的去关心买啥股票,这里使用外观模

设计模式之建造者模式-编程思维

建造者模式定义 建造者模式是一种创建型设计模式(有的也称之为生成器模式), 使你能够分步骤创建复杂对象。 该模式允许你使用相同的创建代码生成不同类型和形式的对象。 建造者模式结构 建造者/生成器(Builder):清晰的定义通用步骤,确保它们可以制造所有形式的产品。 否则你将无法进一步实施该模式。 具体建造者(ConcreteBuilder):每个形式的产品创建具体生成器类, 并实现其构造步

设计模式之观察者模式-编程思维

观察者模式定义 观察者模式是一种行为设计模式, 允许你定义一种订阅机制, 可在对象事件发生时通知多个 “观察” 该对象的其他对象。也就是我们常说的发布-订阅。 观察者模式结构 观察者模式实现 声明抽象观察者(订阅者),也可以是接口 public abstract class Observer { public abstract void Update(); }

观察者模式的"最佳实践"-编程思维

记录一次观察者模式的使用,目前需求是这样的,我有很多个模块,模块与模块之间是相互独立的,当我某个地方触发到相应的逻辑或状态时,需要让其他所有模块都去做自己相应的逻辑处理,文章中有删减,大致是这么个实现思路。 一、代码实现过程 1、为方便其他地方直接调用,这里直接使用静态类,主要提供3个对外的方法,分别是注册监听、取消监听以及发布。 2、创建一个订阅者类, private class Lis

设计模式之装饰模式-编程思维

前言 这里先举两个生活中的小栗子: 新房的装修,房屋装修并没有改变房屋居住的本质,但可以让房屋变得更漂亮,更温馨,更实用,更满足居家需求。 穿搭衣服,你可以根据天气气候变化,选择穿毛衣,穿羽绒服。也可以根据出行场合选择西装等等。 在软件设计中,类似上面的场景我们也可以把对象在不改变结构的情况下对其加工扩展修饰,使得对象具有更加强大的功能,这种技术在设计模式中就叫装饰模式。装饰模式可以在不改变

设计模式之代理模式-编程思维

前言 假设现在有这样一个场景, 高中时小明喜欢小红,因为害羞等不好意思向隔壁班的小红表达爱意,于是就请小华代表他去向小红送礼物。常规做法可能就是一个送礼物的类,一个女孩类,但这样导致的结果就是要么是小明送给小红,要么是小华送给小红。 但现在场景是小明委托小华送礼物给小红,他们之间存在一定的间接联系 代理模式定义 代理模式是一种结构型设计模式, 让你能够提供对象的替代品或其占位符。 代理控制着对于

设计模式之工厂模式-编程思维

工厂模式定义 工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。 代理模式结构图和实现 结构图 实现方式 让所有产品都遵循同一接口。 该接口必须声明对所有产品都有意义的方法。 在创建类中添加一个空的工厂方法。 该方法的返回类型必须遵循通用的产品接口。 在创建者代码中找到对于产品构造函数的所有引用。 将它们依次替换为对于工厂方法的调用, 同时

设计模式之原型模式-编程思维

原型模式概述 原型模式是一种特殊的创建型模式,它通过复制一个已有对象来获取更多相同或相似的对象。原型模式可以提高系统同类型对象的创建效率,简化创建过程。 举个栗子:你写了一份简历,需要"复制"多份出来以便投给不同的企业,难道真的需要"手写"多份出来嘛,那不是浪费纸张浪费笔墨吗,后面我们会用代码来实现这个小栗子。 原型模式定义 使用原型实例指定待创建对象的类型,并通过复制这个原型来创建新的对象。

设计模式概述-编程思维

设计模式的概述 GoF(Gang of Four,GoF分别是 Erich Gamma,Richard Helm,Ralph Johoson 和 John Vlissides) 4 位著名的软件工程学者,他们在 1994 年归纳发表了 23 种在软件开发中使用频率较高的设计模式,旨在用模式来统一沟通方面面向对象方法在分析、设计和实现间的鸿沟。 GoF 将模式的概念引入到软件工程领域,这标志着软件

设计模式之简单工厂模式-编程思维

1|简单工厂模式定义 简单工厂模式(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类; 由于在简单工厂模式中用于创建实例的方法通常是静态(static)方法,因此简单工厂模式又被称为 静态工厂方法模式(Static Factory Method), 它是一种类创建型模式。 要点:如果需要什么,只需传入一个正确的

设计模式之策略模式-编程思维

1|策略模式定义 策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用不同的算法,减少了各种算法类与使用算法类之间的耦合。 2|策略模式优缺点及使用场景 2.1 优点 策略模式的Stragey类层次为Context定义了一系列的可供重用的算法或行为。继承有助于析取这些算法中的公共功能。另外,策略模式还简化了单元测试,因为每个算法

面向对象程序设计原则-编程思维

前言 面向对象程序设计应遵循七大原则,以此提高代码的稳定性、易扩展、可复用、可维护。而不是CTRL+CV一把梭走天下,想要摆脱初级程序猿的称号,就应该从这里开始,不要总是想着程序和人有一个能跑就行,对自己的工作负责,也是对自己负责。 七大设计原则 设计原则名称 定义 使用频率 单一职责原则 一个对象应该只包含单一的职责,并且该职责被完整的封装在一个类中 ★★★★ 开闭原则 软件

【进阶玩法】策略+责任链+组合实现合同签章-编程思维

前置内容 掌握策略模式 掌握责任链模式 掌握类继承、接口的实现 掌握参数的传递与设置 GitHub地址 ps:【文章由来】公司项目中所用的合同签章处理流程,本人基于责任链上使用策略模式进行优化。 签章的处理流程 合同文本初始化 合同文本生成 签章挡板是否开启 合同签章发送mq 合同签章流水更新 合同上传文件服务器 签章渠道选择 签章渠道的实际调用 执行的流程如下: 整个结构类似于递归调用

说说设计模式~责任链模式-编程思维

回到目录 责任链模式 它是一种设计模块,主要将操作流程与具体操作解耦,让每个操作都可以设置自己的操作流程,这对于工作流应用是一个不错的选择! 下面是官方标准的定义:责任链模式是一种设计模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不

说说设计模式~命令模式(command)-编程思维

回到目录 概述 命令模式(Command Pattern)是一种行为型设计模式,它将请求封装成一个对象,从而允许我们根据不同的请求将客户端参数化,并且能够将请求排队或记录请求日志、支持撤销操作等。该模式使得请求的发送者和接收者解耦。 使用命令模式的主要目的是将方法调用封装成对象,这样可以在不同的上下文中使用不同的请求、队列或日志来参数化其他对象。这使得请求的发送者和接收者之间的耦合度降低,并且能

说说设计模式~委派模式-编程思维

回到目录 概述 委派模式(Delegate Pattern)又叫作委托模式,是一种面向对象的设计模式,允许对象组合实现与继承相同的代码重用。它的基本作用就是负责任务的调用和分配,是一种特殊的静态代理模式,可以理解为全权代理模式,但是代理模式注重过程,而委派模式注重结果。委派模式属于行为型设计模式,不属于GoF的23种设计模式。 使用场景 任务分发:当一个任务需要被分发给多个不同的执行者来完成