![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java设计模式
glamour2015
这个作者很懒,什么都没留下…
展开
-
单例模式的使用场景
就算你没有用到过其他的设计模式,但是单例模式你肯定接触过,比如,Spring 中 bean 默认就是单例模式的,所有用到这个 bean 的实例其实都是同一个。单例模式的使用场景什么是单例模式呢,单例模式(Singleton)又叫单态模式,它出现目的是为了保证一个类在系统中只有一个实例,并提供一个访问它的全局访问点。从这点可以看出,单例模式的出现是为了可以保证系统中一个类只有一个实例而且该实例又...转载 2020-04-16 07:10:18 · 4207 阅读 · 0 评论 -
Java多线程并发生产者消费者设计模式实例解析
一、两个线程一个生产者一个消费者需求情景两个线程,一个负责生产,一个负责消费,生产者生产一个,消费者消费一个。涉及问题同步问题:如何保证同一资源被多个线程并发访问时的完整性。常用的同步方法是采用标记或加锁机制。wait() / nofity() 方法是基类Object的两个方法,也就意味着所有Java类都会拥有这两个方法,这样,我们就可以为任何对象实现同步机制。wait()方法:当缓冲...转载 2020-03-29 11:21:02 · 461 阅读 · 0 评论 -
备忘录模式 Memento
概念备忘录模式又叫做快照模式,该模式将当前对象的内部状态保存到备忘录中,以便在需要时能将对象的状态恢复到原先保存的状态。备忘录模式提供了一种保存和恢复状态的机制,常用于快照的记录和状态的存储,在系统发生故障或数据发生不一致时能够方便地将数据恢复到某个历史状态。备忘录的核心是设计备忘录类及用于管理备忘录的管理者类,主要角色如下:发起人Originator记录当前时刻的内部状态,定义创建备忘录...转载 2020-03-22 09:24:18 · 104 阅读 · 0 评论 -
模板方法模式 Template Pattern
概览模板方法模式定义了一个算法框架,并通过继承的方式将算法的实现延迟到子类中,使得子类可以在不改变算法框架及其流程的前提下重新定义该算法在某些特定环节的实现,是一种类行为型模式。该模式在抽象类中定义了算法的结构并实现了公共部分算法,在子类中实现可变的部分并根据不同的业务需求实现不同的扩展。模板方法模式的优点在于其父类(抽象类)中定义了算法的框架以及保障算法的稳定性,同时在父类中实现了算法公共部...原创 2020-03-21 22:57:02 · 94 阅读 · 0 评论 -
策略模式与状态模式
概念策略模式为同一个行为定义了不同策略,为每种策略实现了不同方法。用户使用时系统根据不同的策略自动切换不同的方法实现策略的改变。同一策略下的不同方法是对同一功能的不同实现,因此在使用时可相互替换而不影响用户的使用。策略模式的实现是在接口中定义不同的策略,在实现类中完成了对不同策略下具体行为的实现,并将用户的策略状态存储在上下文中来完成策略的存储和状态的改变。下面设计的场景是,我们需要画一个图...原创 2020-03-21 22:40:21 · 210 阅读 · 0 评论 -
迭代器模式 Iterator Pattern
概念迭代器模式提供了顺序访问集合对象中的各种元素,而不暴露该对象内部结构的方法。Java中的集合就是典型的迭代器模式,比如HashMap,当遍历HashMap时,需要迭代器不停地获取Next元素就可以循环遍历集合中所有元素。迭代器模式将遍历集合中所有元素地操作封装成一个迭代器类,目的是在不暴露集合对象内部结构地情况下,对外提供统一访问集合内部数据的方法。迭代器的实现一般包括一个迭代器,用于执行...原创 2020-03-21 22:29:35 · 73 阅读 · 0 评论 -
责任链模式 Chain of Responsibility
概念责任链模式用于避免请求发送者与多个请求处理者耦合在一起,让所有请求的处理者持有下一个对象的引用,从而将请求串联成一条链,在有请求发生时,可将请求沿着这条链传递,直到遇到该对象的处理器。该模式下用户只需将请求发送到责任链上即可,无需关心请求的处理细节和传递过程,所以责任链模式优雅地将请求的发送和处理进行了解耦。责任链模式常用于Web模式。责任链模式包含以下三种角色:Handler接口规...原创 2020-03-21 22:23:05 · 90 阅读 · 0 评论 -
回调模式、事件监听器模式、观察者模式、命令模式
回调函数回调函数是理解监听器、观察者模式的关键。所谓的回调,用于回调的函数。 回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数。举个例子:这里有两个实体:回调抽象接口、回调者(即程序a)回调接口(ICallBack )public interface ICallBack { public void callBack();}回调者(用于调用回调函数的类)...原创 2020-03-21 22:13:10 · 721 阅读 · 0 评论 -
代理模式
定义代理模式指为对象提供一种通过代理的方式来访问并控制该对象行为的方法。在客户端不适合或者不能够直接引用一个对象时,可以通过该对象的代理对象实现对该对象的访问,可以将该代理对象理解为客户端和目标对象之间的中介者。在代理模式下有两种角色,一种是被代理者,一种是代理(Proxy),在被代理者需要做一项工作时,不用自己做而是交给代理做。静态代理:静态代理在使用时,需要定义接口或者父类,被代理对...原创 2020-03-20 22:42:49 · 102 阅读 · 0 评论 -
23种设计模式概览
创建型模式-简单工厂模式一个工厂类 XxxFactory,里面有一个静态方法,根据我们不同的参数,返回不同的派生自同一个父类(或实现同一接口)的实例对象。public class FoodFactory { public static Food makeFood(String name) { if (name.equals("noodle")) { ...原创 2020-03-20 21:48:44 · 83 阅读 · 0 评论