![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java设计模式
攻城狮Luke(刘健彬)
在深圳某IOT企业任职技术专家,擅长的技术领域包括Spring Cloud、Spring Cloud Alibaba、微服务架构、Docker、Kubernetes、分布式事务、高并发多线程、消息队列、数据库、数据结构与算法、网络数据安全、JVM、DevOps等,拥有丰富的互联网一线开发与架构经验。开源分布式事务框架milo作者,CSDN知名博主。
展开
-
完全透析设计模式(4)- 桥接模式
桥接模式(Bridge)桥接模式属于结构型设计模式,其核心的设计思想就是将抽象化结构和实现化结构隔离开来,使两者达到解耦的目的,同时又将两者通过聚合连接起来,配合完成功能。目的就是将抽象部分与实现部分分离,使它们都可以独立的变化,同时它们之间还存在联系,毕竟使用者最终还是要通过调用抽象化的对象去间接调用具体实现化的对象。桥接模式可以让抽象化结构和实现化结构达到极其良好的扩展能力,这是该模式最大的...原创 2019-11-28 14:33:39 · 204 阅读 · 0 评论 -
完全透析设计模式(2)- 模板方法
模板方法模式(Template Method)我曾在一本书上看过作者将模板比喻成带有镂空文字的薄薄的塑料版。只要用笔在模板的镂空处就可以临摹出整齐的图案。我们可以通过塑料版上镂空的洞就可以知道是什么文字图案,但是文字图案具体是什么颜色的,效果如何,就只能依赖于使用什么样的笔去临摹了。但是文字图案的形状一定是和镂空的图案一致的。模板方法是一种行为设计模式。通过定义一个抽象类作为父类,然后声明一些...原创 2019-11-20 16:24:51 · 194 阅读 · 0 评论 -
完全透析设计模式(1)- 工厂方法
工厂方法模式(Factory Method)工厂方法设计模式属于创建型设计模式(有的资料称构建型设计模式)。在工厂方法模式中,父类决定实例的生成方式,这种方式表现出来就是一个抽象类,所以并不决定生成的具体的类,具体的实现就交给继承的子类去实现。这里抽象的父类可以理解为“工厂”,而具体的实现子类则可以理解为“产品”。工厂方法的角色下图工厂方法模式UML类图:- Product(抽象产品)...原创 2019-11-19 16:10:59 · 188 阅读 · 0 评论 -
java设计模式之策略模式
一、定义算法族和实现public interface IAttack { public void attack();}public interface IDisplay { public void display();}public interface IRun { public void run();}public class ...原创 2019-05-05 10:20:16 · 203 阅读 · 0 评论 -
使用Google的Guava工具EventBus-观察者模式
EventBus是Google.Guava提供的消息发布-订阅类库,它实现了观察者设计模式,消息通知负责人通过EventBus去注册/注销观察者,最后由消息通知负责人给观察者发布消息。首先使用 maven 依赖:[java] view plain copy<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->...转载 2018-05-28 15:16:56 · 3545 阅读 · 0 评论 -
JAVA设计模式之外观模式(Facade)
Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。Facade模式概述 实际应用中,我们在对付一些老旧的code(尤其是将C的代码转成C++代码)或者即便不是老旧code,但涉及多个子系统时,除了重写全部代码 (对于老旧code而言),我们还可能采用这样一种策略:重新进行类的设计,将原来分散转载 2016-01-20 11:11:42 · 458 阅读 · 0 评论 -
设计模式 外观模式 一键电影模式
这个模式比较简单,嘿嘿,简单写一下。老样子,先看 外观模式(Facade Pattern)定义:提供一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层的接口,让子系统更容易使用。其实就是为了方便客户的使用,把一群操作,封装成一个方法。举个例子:我比较喜欢看电影,于是买了投影仪、电脑、音响、设计了房间的灯光、买了爆米花机,然后我想看电影的时候,我需要:1、打开爆米转载 2015-06-02 09:48:08 · 714 阅读 · 0 评论 -
设计模式 装饰者模式 带你重回传奇世界
今天继续设计模式之旅,给大家带来装饰者模式,国际惯例,先看定义。装饰者模式:若要扩展功能,装饰者提供了比集成更有弹性的替代方案,动态地将责任附加到对象上。先简单描述下装饰者模式发挥作用的地方,当我们设计好了一个类,我们需要给这个类添加一些辅助的功能,并且不希望改变这个类的代码,这时候就是装饰者模式大展雄威的时候了。这里还体现了一个原则:类应该对扩展开放,对修改关闭。下面进入转载 2015-06-02 13:15:40 · 585 阅读 · 0 评论 -
java设计模式之-适配器模式
前言 适配器模式就是当需要的功能与要提供的功能之间接口不符合时,作为两者之间的适配,从而让两者可以无缝对接。例如现实生活中的电脑充电情况一样,如果有朋友出国旅游,在国外买了一台电脑,回到国内后突然想给电脑充电,发现外国的电压不是220V的,而是110V的(这里是假设的),怎么办呢?还好外国买的电脑配有充电转换器,可以将220V的电压转换成110V电压,好吧,电脑充电问题可以解决原创 2015-04-01 22:43:41 · 598 阅读 · 0 评论 -
java设计模式之策略模式
今天不想写代码,给大家带来一篇设计模式的文章,帮助大家可以把系统组织成容易了解、容易维护、具有弹性的架构。先来看看策略模式的定义:策略模式(Strategy Pattern):定义了算法族,分别封装起来,让它们之间可相互替换,此模式让算法的变化独立于使用算法的客户。好了,对于定义,肯定不是一眼就能看明白的,不然这篇文章就收尾了,对于定于大家简单扫一眼,知道个大概,然后继续读转载 2015-03-31 23:32:38 · 533 阅读 · 0 评论 -
java设计模式之观察者模式
继续设计模式的文章,今天给大家带来观察者模式。先来看看观察者模式的定义:定义了对象之间的一对多的依赖,这样一来,当一个对象改变时,它的所有的依赖者都会收到通知并自动更新。好了,对于定义的理解总是需要实例来解析的,如今的微信服务号相当火啊,下面就以微信服务号为背景,给大家介绍观察者模式。看一张图:其中每个使用者都有上图中的3条线,为了使图片清晰省略了。转载 2015-03-29 22:57:37 · 487 阅读 · 0 评论 -
java设计模式之— 适配器(Adapter)
今天一大早,你的leader就匆匆忙忙跑过来找到你:“快,快,紧急任务!最近ChinaJoy马上就要开始了,老板要求提供一种直观的方式,可以查看到我们新上线的游戏中每个服的在线人数。”你看了看日期,不是吧!这哪里是马上要开始了,分明是已经开始了!这怎么可能来得及呢?“没关系的。”你的leader安慰你道:“功能其实很简单的,接口都已经提供好了,你只需要调用一下就行了。”转载 2015-03-05 23:50:59 · 566 阅读 · 0 评论 -
Java设计模式之 —— 模板方法(Template Method)
今天你还是像往常一样来上班,一如既往地开始了你的编程工作。项目经理告诉你,今天想在服务器端增加一个新功能,希望写一个方法,能对Book对象进行处理,将Book对象的所有字段以XML格式进行包装,这样以后可以方便与客户端进行交互。并且在包装开始前和结束后要打印日志,这样方便调试和问题定位。没问题!你觉得这个功能简直是小菜一碟,非常自信地开始写起代码。Book对象代码如下:转载 2015-03-02 00:20:45 · 516 阅读 · 0 评论 -
Java动态代理
Java动态代理解析(一)原理动态代理简单来说就是当我们想调用某个对象的方法时,通常是通过对象直接调用对象自己的方法,然而有时我们并不能直接拿到给对象,而是只能拿到一个“代理”对象,通过代理对象去代理真实对象,调用真实对象的方法。那么问题来了,为什么不能直接拿到对象?代理对象代理真实对象又有写什么用呢?其实之所以用代理对象去代理(代处理)真实对象,就是想在真实对象调用方法前后做一些处理。j原创 2015-02-08 23:10:32 · 721 阅读 · 0 评论