设计模式
Java成魔之路
公众号「Java成魔之路」
持续学习·精于一术
展开
-
【详解设计模式】-装饰者模式,换个马甲我也认识你!
什么是装饰者模式装饰者模式是GOF23中设计模式之一,属于结构型模式。通过这种设计模式,能够动态地给一个对象添加额外的能力,同时又不改变原有对象的结构。动态地给一个类添加额外的功能,我们想到了Java中的继承机制,通过扩展父类的方式,可以让子类拥有一些额外的功能。使用装饰者模式,同样能达到这种效果,而且不用继承,使用起来更加灵活便利。装饰者模式代码实现我们创建一个手机接口IPhone和实...原创 2020-03-31 22:57:02 · 727 阅读 · 1 评论 -
还在if-else行走天下?试试【策略模式】吧
什么是策略模式首先策略模式属于GOF23中设计模式中的一种,是一种行为型的设计模式。“行为”主要是指不同的方法或者算法。其实就是我们定义和封装一些策略(或者说是算法),这些策略是可以相互替换的。然后客户端类通过使用这些不同的策略就可以表现出不同的行为。相信大家一定见到过if-else 满天飞的代码,其实可以考虑使用策略模型进行优化。策略模式代码示例这里我们以上班需要选择不同的交通工具为例...原创 2020-03-31 00:57:44 · 740 阅读 · 4 评论 -
我要打十个!详解建造者模式(builder pattern)
前言“我要打十个”,其实是我要打十个野怪!这十个野怪呢,它们有不同的技能、装备和武器,长得也不一样。这里野怪是一个蛮复杂的对象,由各个不同的部分组成(技能、装备、武器等),不同的野怪的它们各部分之间的构成方式就不同。因此,要创建这种复杂对象,就需要使用建造者模式。什么是建造者模式首先建造者模式Gof 23种设计模式之一。也叫Builder模式。是将一个复杂对象的构建和其表示相分离,使得同...原创 2020-03-17 00:29:31 · 288 阅读 · 0 评论 -
设计模式之委派模式,大名鼎鼎的Spring都在用
什么是委派模式虽然说委派模式不属于Gof23中设计模式,但这并不影响它成为一种经典的设计模式。“委派”字面意思就是指派一件事情给某人。类比到生活中的场景,比如项目leader指派开发任务给下面的猿猿们。这听起来有点像静态代理,不过还是不一样的,你品,你细品!代理强调的是过程,主要是要在代理过程中加入一些动作的,而委派主要是分配和分发。代码实现我们先新建一个业务处理接口BusinessSer...原创 2020-03-15 11:24:20 · 593 阅读 · 0 评论 -
设计模式之代理模式
什么是代理模式代理模式就是为一个对象提供一个代理对象,由这个代理对象控制对该对象的访问。理解代理模式,可以对照生活中的一些具体例子,比如房产中介、二手车交易市场、经纪人等。为什么要用代理模式通过使用代理模式,我们避免了直接访问目标对象时可能带来的一些问题,比如:远程调用,需要使用远程代理来帮我们处理一些网络传输相关的细节逻辑;可能需要基于某种权限控制对目标资源的访问,可以使用保护代理等。...原创 2019-11-26 00:20:58 · 310 阅读 · 0 评论 -
设计模式之原型模式
什么是原型模式什么是原型模式,就是根据一个已经存在的对象实例,复制创建出多个对象实例的设计方法。已经存在的对象实例就是原型对象。原型模式属于创建型的设计模式。当创建对象的代价交高时,可是使用原型模式复制拷贝对象,这样更做效率更高。原型模式复制对象一般会用到Object类的clone方法。在Java中实现对象拷贝或克隆,使用clone()方法。能够实现克隆的Java类必须实现一个标识接口Cl...原创 2019-11-22 00:37:29 · 460 阅读 · 0 评论 -
工厂模式超详解(代码示例)
工厂模式概述工厂模式的主要解决的问题是,将原来分布在各个地方的对象创建过程单独抽离出来,交给工厂类负责创建。其他地方想要使用对象直接找工厂(即调用工厂的方法)获取对象。工厂模式的三种类型工厂模式主要有三种类型1、简单工厂2、工厂方法3、抽象工厂简单工厂拿泡茶为例,茶叶有好多种类,比如龙井、碧螺春、毛尖等。首先一个ITea接口:public interface ITea { ...原创 2019-11-20 01:17:04 · 20012 阅读 · 8 评论 -
Java面试必备:手写单例模式
面试官:请手写下几种常见的单例模式我:好的(面带微笑),心里暗喜(送分题)。没成想提笔便写出了如此豪放的代码,不堪回首,请原谅我的不羁!此篇整理了几种常见的单例模式代码示例,再有面试官让手撕单例模式,便能心中有码,下笔有神。为什么要有单例模式实际编程应用场景中,有一些对象其实我们只需要一个,比如线程池对象、缓存、系统全局配置对象等。这样可以就保证一个在全局使用的类不被频繁地创建与销毁,...原创 2019-06-27 00:24:26 · 2955 阅读 · 1 评论