自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 第18章 状态模式 【State Pattern】

状态模式(State Pattern)也称为状态机模式(State Machine Pattern),是允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类,属于行为型式。状态模式中类的行为是由状态决定的,不同的状态下有不同的行为。其意图是让一个对象在其内部改变的时候,其行为也随之改变。状态模式核心是状态与行为绑定,不同的状态对应不同的行为。

2025-09-15 17:27:02 852

原创 第17章 命令模式【Command Pattern】

命令模式(Command Pattern)是对命令的封装,每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式解耦了请求方和接收方,请求方只需请求执行命令,不用关心命令是怎样被接收,怎样被操作以及是否被执行.….等。命令模式属于行为型模式。

2025-09-12 17:41:36 245

原创 第16章 迭代器模式【Iterator Pattern】

迭代器模式(lterator Pattern)又称为游标模式(Cursor Pattern),它提供一种顺序访问集合/容器对象元素的方法,而又无须暴露集合内部表示。迭代器模式可以为不同的容器提供一致的遍历行为,而不用关心容器内容元素组成结构,属于行为型模式。

2025-09-11 17:53:05 339

原创 第15章 责任链模式【Chain of Responsibility Pattern】

责任链模式是将链中的每一个节点看作是一个对象,每个节点处理的请求均不同,且内部自动维护一个下一节点对象,当一个请求从链式的首端发出时,会沿着链的路径一次传递给每一个节点对象,直至有节点处理这个请求为止。属于行为模式。

2025-09-11 15:19:22 427

原创 第15章 策略模式【StrategyPattern】

策略模式是将定义的算法家族、分贝包装起来,让他们之间可以相互替换,从而实现同一行为在不同场景下具备不同的实现。

2025-09-05 16:52:13 340

原创 第14章 模板方法模式【Template Method Pattern】

模板方法模式是指定义一个操作中的算法框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤,属于行为模式模板方法实际上是封装了一个固定流程,该流程由几个步骤完成,具体步骤可以由子类进行不同实现,从而让固定的流程产生不同的结果。

2025-09-04 18:52:11 132

原创 第13章 委派模式【DelegatePattern】

委派模式顾名思义,简单一句话就是给别人派活。他的基本作用是负责任务的调度和分配任务,是一种特殊的静态代理,但是代理模式注重过程,而委派模式注重结果。注意委派模式不属于GOF23中设计模式。

2025-09-04 16:45:21 204

原创 第12章 桥接模式【BridagePattern】

桥接模式也叫桥梁模式,是将抽象部分与他的具体实现部分分离,使他们都可以独立的变化,属于结构型模式。桥梁模式的主要目的是通过组合的方式建立两个类之间的关系,而不是继承。但又类似于多继承方案,但是多继承方案往往违背了类的单一职责原则,其复用性比较差,桥接模式是比多继承更好的替代方案。桥接模式的核心在于解耦抽象和实现。

2025-09-04 11:50:33 409

原创 第11章 适配器模式【Adapter Pattern】

适配器模式也叫变压器模式,他的功能是讲一个类的接口编程客户端所期望的另一种接口,从而使原本接口不匹配而导致无法在一起工作的两个类能够一起工作,属于结构型模式。

2025-09-03 18:13:11 340

原创 第10章 组合模式【Composite Pattern】

从类图上大家应该能看清楚了,这两种模式各有优缺点,透明模式是把用来组合使用的方法放到抽象类中,比如 add(),remove()以及 getChildren 等方法(顺便说一下,getChildren 一般返回的结果为 Iterable的实现类,很多,大家可以看 JDK 的帮助),不管叶子对象还是树枝对象都有相同的结构,通过判断是getChildren 的返回值确认是叶子节点还是树枝节点,如果处理不当,这个会在运行期出现问题的,不是很建议的方式;

2025-09-02 15:55:18 447

原创 第9章 享元模式【Flyweight Pattern】

小型的外包项目,给客户 A 做一个产品展示网站,客户 A 的朋友感觉效果不错,也希望做这样的产品展示网。

2025-09-01 17:39:11 324

原创 第8章 装饰者模式【Decorator Pattern】

装饰者模式也称包装模式,是指在不改变原有对象的基础上,即将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式装饰器模式的UML类图如下,主要包含四种角色。

2025-08-29 17:24:21 1413

原创 第7章 外观模式【Facade Pattern】

我们打开系统软件为例,一般我们上班需要打开电脑上的各个软件,比如打开idea,关闭idea;打开WX,登录,关闭。这些操作本来需要我们认为去一个一个手动操作,很麻烦。有没有一个简单操作,一键执行这些操作呢。我们可以设置打开电脑自动启动这些程序,我们只需要开机,关机就行。

2025-08-28 14:48:37 265

原创 第6章 代理模式【ProxyPattern】

静态代理的目标对象和代理对象需要实现统一个接口或者继承相同的父类。JDK动态代理的代理对象不需要实现接口,但是目标对象需要实现接口。

2025-08-27 16:59:59 393

原创 第5章 建造者模式【Builder Pattern】

主要区别就是建造者模式的主要功能是基本方法的调用顺序的安排,也就是说这些基本方法已经被实现了;而工厂模式则重点是创建对象,你要什么对象,我就创建什么对象出来,组装顺序是不关心的。产品类很复杂,或者产品类中因为调用顺序的不同,会产生不同的效能的场景,这个时候可以考虑使用建造者模式。java.lang.StringBuilder中应用了建造者模式。

2025-08-26 18:32:53 380

原创 第4章 原型模式【Prototype Pattern】

原型模式是指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,属于创建型模式,原型模式的核心就是克隆拷贝原型对象,以系统内存在的一个对象为原型,直接基于内存二进制流进行拷贝,包括属性,无需在经历耗时的对象初始化过程。

2025-08-25 18:40:55 126

原创 第3章 单例模式【Singleton Pattern】

单例模式是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。J2EE标准中ServletContext、ServletContextConfig等、Spring框架中的ApplicationContext、数据库连接池等也都是单例模式。

2025-08-25 15:24:49 248

原创 第 2 章 工厂模式【Factory Pattern】

简单工厂模式适用于工厂负责创建的对象较少的场景,且客户端只需要传入工厂类的参数,对于如何创建对象的逻辑不需要关心接下来直接上代码,以课程为例,java 和python两个课程:简单工厂模式不属于23中设计模式的一种简单工厂模式在JDK源码也是无处不在,例如Calendar类,Calendar.getInstance()方法还有大家经常使用的logback,可以看到LoggerFactory的getLogger方法。

2025-08-18 16:14:18 390

原创 第1章 六大设计原则

一个软件实体应该对扩展开放,对修改关闭。其含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。

2025-08-12 15:52:32 1970

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除