![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA设计模式
文章平均质量分 64
weihubeats
开源框架Tlog贡献者,技术大多都源于生产实践,乐于分享.公众号:小奏技术
展开
-
这样看模板设计模式就很容易理解了
模板模式是属于行为设计模式中的一种,主要是为了解决代码的复用和扩展定义模板方法模式在一个方法中定义一个算法骨架,并将某些步骤推迟到子类中实现。模板方法模式可以让子类在不改变算法整体结构的情况下,重新定义算法中的某些步骤看定义其实是很难理解的,下面我们结合实际例子和代码来理解下实现核心代码这里我先给出模板模式的大致实现代码然后再结合实际应用场景来说明。首先我们需要定义一个抽象类,抽象类中定义了一些固定好的算法骨架,然后核心方法由子类实现public abstract class Abstr.原创 2021-05-14 21:13:44 · 95 阅读 · 0 评论 -
Java设计模式之适配器模式
定义适配器模式(Adapter Design Pattern):定义解释也很简单,就是将不兼容的接口转换为兼容的接口,让原本不能一起工作的类一起工作,简单比喻就是转接头,我们在使用一些显示器的接口的时候由于接口的不兼容就需要使用转接头。适配器模式实现方式主要分两种:类适配器和对象适配器,下面我们来简单了解下这两种实现方式。类适配器类适配器主要基于继承来实现ITarget 表示我们要转换的接口public interface ITarget { void f1(); void原创 2021-04-27 22:33:29 · 237 阅读 · 0 评论 -
guava 中 EventBus学习(观察者模式的封装)
前言在传统的23中设计模式中的代理模式,我们自己手动实现需要定义一系列的骨架,比如自己的Observer接口,一些其他的接口等,由于观察者模式算是一种较为常见的设计模式,所以google为我们再度封装了这种设计模式,使得我们开箱即用,且更为灵活,让我们来仔细学习一下google中的 EventBusEventBusEventBus 在被称为事件,类似于观察者模式中的发布版的概念,就是发布消息EventBus 消息通知通常有两种模式,同步阻塞和异步非阻塞 // 同步阻塞原创 2020-10-13 22:29:20 · 416 阅读 · 0 评论 -
Java设计模式之建造者模式
为什么需要建造者模式其实从定义来说建造者模式,似乎并不太好描述,但是如果从实际需求来解释会相对很容易,建造模式主要用于对象的创建。一般创建一些简单的对象我们直接使用 new 就可以了,但是实际开发中一些对象的创建是否真的 只用 new就可以解决呢?案例我们来看看在复杂的业务中对象的创建。假设我们现在要创建一个学生类,但是要通过另一个学生类去获取相关属性,并且会对相关属性做限制,比如年龄不能小于0不用建造者模式大致可能是这样的public class Student{private Str原创 2020-08-16 13:44:56 · 416 阅读 · 0 评论 -
Java设计模式之责任链模式
定义相对官方解释:将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链,并沿着这条链传递这个请求,直到链上的某个接收对象能够处理它为止个人理解: 实际就是当我有些需求比如对字符串作敏感词过滤,如果当前字符串瞒住某个敏感词或者某个处理逻辑,就不再继续执行下去,否则继续执行下去。当人责任链的变种也特别常用,就是类似一个字符串的处理逻辑,瞒住了一也会继续走下去。实现这里使用一种相对简单好理解的实现方法IHandler首先抽象出一个处理抽象接口,所有处理器都原创 2020-08-08 15:05:05 · 1205 阅读 · 0 评论 -
Java设计模式之观察者模式
定义观察者模式(Observer),又叫发布-订阅模式(Publish/Subscribe),定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新,大致构成如下总结:应用场景现在又如下需求:天气气象局可以测量天气的温度、湿度和气压,当需要测量新的天气测量数据measurementsChanged() 方法就会被调用,现在有2个需要使用天...原创 2020-03-30 21:54:18 · 230 阅读 · 0 评论 -
Java设计模式之策略模式
策略模式定义定义了算法族,分别封装起来,让它们之间可以互相替换 ,此模式让算法的变化独立于使用算法的客户简单理解及应用场景我们可能有如下应用场景:对于一个商品来说,会有不同的会员,不同的会员会有不同的折扣,在不用策略模式我们的代码可能是这样的public BigDecimal getDiscountPrice() { if ("普通会员".equals(membe...原创 2020-03-22 15:35:35 · 275 阅读 · 0 评论 -
Java设计模式之单例模式
本文继续介绍23种设计模式系列之单例模式。概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向...转载 2019-03-13 10:14:05 · 251 阅读 · 0 评论 -
Java设计模式之代理模式
概念:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。解释:我个人感觉就是一种在不改变原代码的基础上新增功能,就像spring AOP不就用的代理模式实现的吗我们来看代码:首先代理模式又分为:静态代理和动态代理,我们先来看看静态代理吧;- 静态代理我们现在有一个person这个类,这个类有吃方法,我们想在不...原创 2019-05-14 22:29:54 · 175 阅读 · 0 评论