随笔分类 - Java设计模式
摘要:概论 什么是迭代器模式?迭代器模式是提供一种方法访问一个容器对象中的各个元素,而又不需要暴露该对象的细节。 迭代器模式示例 迭代器模式中分为4种角色。 ①抽象迭代器 ②具体迭代器 ③抽象容器 ④具体容器 首先我们一个抽象迭代器,抽象迭代器中包含遍历到下一个元素、判断遍历是否已经到了尾部、删除当前指向
阅读全文
摘要:概论 什么是观察者模式呢?观察者模式也叫发布订阅模式。定义对象间一种一对多的依赖关系,是的每当一个对象改变了状态,则所有依赖于它的对象都会得到通知并且自动更新。 观察者模式示例 首先我们定义一个抽象的观察者: 一般定义为接口,第3行,提供一个接口用于接收被观察者的动态。我们再增加一个具体的观察者:
阅读全文
摘要:前言 什么是装饰模式呢?装饰模式是指动态地给一个对象添加额外的职责。因此装饰,也叫对象的包装。 装饰模式示例 互联网行业的迅猛发展,涌现了不计其数的Java开发工程师,想想必大家都很清楚,需求有产品经理把控,设计和开发一般是开发人员开发。软件测试由测试工程师负责。部署上线一般来说是实施人员,但是有很
阅读全文
摘要:概论 什么是原型模式呢?用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。这个模式就叫作原型模式。原型模式属于对象创建者模式。 原型模式示例 首先我们需要有一个原型。这个原型实现了Cloneable空接口。这是一个标记接口,并无任何的方法。 第9行-12行:采用lambok注解,简化了
阅读全文
摘要:前言 为什么要再谈,因为动态代理是aop编程的核心。后面分析spring aop的源代码的最重要的理论基础。 再谈动态代理 首先动态代理需要哪些角色呢? 1.抽象角色。这个抽象角色必须为接口。 2.具体角色。这个具体角色必须实现抽象接口。 3.IAdvice接口和BeforeAdviceImple实
阅读全文
摘要:前言 上篇我们演示了使用JDK的InvocationHandler实现动态代理,本文我们采用cglib来实现动态代理。 动态代理示例 运用JDK的InvocationHandler是根据抽象接口来实现的,然而基于cglib来实现动态代理,被代理角色可以是一个普通的类,也可以是一个接口的实现类,总之,
阅读全文
摘要:前言 什么是动态代理呢?动态代理指的是在实现阶段不需要关心代理谁,而是在运行阶段才指定哪一个对象。 动态代理示例 首先要介绍一下JDK提供的一个动态代理接口 InvocationHandler。这个接口的用途在于对代理类的方法进行代理,我们先实现InvocationHandler接口: 第3行:声明
阅读全文
摘要:前言 代理模式分为静态和动态。同时静态代理又分为普通代理和强制代理。因此本文会通过示例的方式详细介绍着静态的两种代理模式。我们依然以网上购物为例。 普通代理 定义:要求客户端只能访问代理角色,而不能直接访问真实角色。我们需要修改真实角色: 第5行-10行:限制了谁能够创建真实对象,同时传递登录账号。
阅读全文
摘要:概论 什么是代理模式呢?代理模式是这么定义的:为其他对象提供一种代理以控制对这个对象的访问。 代理模式示例 代理模式中有三种角色,分别是抽象主题角色,具体主题角色和代理主题角色。 1.抽象主题角色指的是抽象的行为,往往使用接口或者抽象类来表达。或者使用接口和抽象类混合使用。 2.具体主题角色指的是具
阅读全文
摘要:概论 什么是建造者模式呢?将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式示例 我们先来回忆一下在模板模式中的 示例,[内外部系统交互]中的四个步骤: 第一步:参数校验 第二步:封装对外的请求参数 第三步:对外提交请求 第四步:后置处理,例如记录操作日志 最后核
阅读全文
摘要:概论 什么是模板模式呢?模板模式是这么定义的:定义一个操作中的算法的框架,而将这个框架中的某一些步骤延迟到子类中。使得子类可以不改变一个算法的结构。而能够重新定义该算法的某一些特定的步骤。 模板模式示例 举个例子,假如我们工作中的系统需要和许多的外部系统做交互时。由于外部系统各种各样,因此我们在发起
阅读全文
摘要:前言 工厂模式在项目中被广泛的使用。使用设计模式,可以让很复杂的业务用简单的代码表达出来。 工厂模式的概述 首先我们举个栗子来说明,在相传的神话中,最早的一批人类是通过女娲造人来产生的,女娲就是一个客户端的调用方,也是场景的执行者。黄色人种,白色人种,黑色人种就是要产生的产品。即工厂中的产品。 我们
阅读全文
摘要:前言 单例模式在实际项目中起着非常重要的作用,笔者将从以下几点来讲解。 1.单例模式的概念 2.单例模式的类图 3.单例模式的几种表达形式 单例模式的概念 单例模式保证某一个具体的类只有一个实例,并且只有自己才能实例化,同时向整个系统开放这个实例。 单例模式的类图 单例模式的几种表达形式 单例模式在
阅读全文
摘要:前言 设计模式是众多开发者在反复的实践中,总结出的最佳策略。设计模式往往被富有丰富软件开发经验的工程师所采纳。设计模式也是开发工程师在软件开发过程中面临一般的问题时的解决方案。设计模式是一套反复被开发者使用,多数人知晓的设计经验的高度总结,使用设计模式至少有两个好处。 1.避免相同的代码贴的到处都是
阅读全文
摘要:策略模式的概述 策略模式定义了一组算法,并且将算法封装在持有公共接口的独立类中,每一个算法具有平等性,客户端根据实际的业务选择最合适的算法, 同时,客户端可以轻松的置换任何一种算法。 策略模式的角色 策略模式是对于一组算法的封装,将算法本身与客户端相分离,达到把算法的本身与算法的责任分离开来,交给相
阅读全文

浙公网安备 33010602011771号