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