【完结】Java设计模式
不仅限于 GOF_23 种设计模式,针对每种模式文章会持续修整,力争用最简单的方式掌握设计模式;
BraveWangDev
11年开发经验、全栈工程师;2023年更新计划已确定,希望能与大家共同进步;
展开
-
13,享元模式-连连看的图片共享
一,前言7种结构型设计模式:桥接模式,适配器模式,装饰模式,组合模式,享元模式,外观模式,代理模式上篇我们说了桥接模式:通过将实现和抽象放在两个不同的类层次中而使他们可以独立改变,桥接模式适用于那些多种情况排列组合发生的场景这篇说说享元模式,顾名思义就是共享对象的一种模式共享对象给我们带来的直接好处就是降低了内存的开销这个模式并不难,但我们还是要把这个模式涉及到的内容都罗列出来二,享元模式1)原创 2017-11-14 11:05:59 · 795 阅读 · 0 评论 -
12,桥接模式-露娜的召唤师技能
一,前言7种结构型设计模式:桥接模式,适配器模式,装饰模式,组合模式,享元模式,外观模式,代理模式上篇我们说了装饰模式:动态地将责任附加到对象上,在不修改任何底层代码的情况下,为对象赋予新的职责开发中,我们经常会遇到一个类有两个或两个以上的维度经常在变化如果我们使用继承的方式实现:对一个抽象做多种实现我们会发现由于变化的维度太多,可能无法实现或是设计变得十分臃肿这种时候,我们特别希望这个两个维度原创 2017-11-06 16:51:56 · 774 阅读 · 0 评论 -
11,装饰模式-孙悟空的六神装
一,前言7种结构型设计模式:桥接模式,适配器模式,装饰模式,组合模式,享元模式,外观模式,代理模式上篇我们说了外观模式:提供一个统一接口来访问子系统中的一群接口外观定义了一个高层接口,让子系统更容易使用开发中我们为一个对象添加新行为通常会采用继承的方式但通常这样做会导致继承泛滥的结果也就是我们常说的类爆炸,为后续的维护带来不便本着"开放-关闭"的设计原则,我们希望在不修改原有代码的情况下,为对原创 2017-11-03 15:37:53 · 776 阅读 · 0 评论 -
10,外观模式-我来组成头部
一,前言7种结构型设计模式:桥接模式,适配器模式,装饰模式,组合模式,享元模式,外观模式,代理模式上篇我们说了适配器模式,通过包装接口,将一个不适配的接口转换成为我们需要的接口结构型设计模式,还有一个和适配器模式相似,两者都是对类进行包装,但它的目的是简化接口我们叫他外观模式,也叫门面模式二,外观模式&场景外观模式:提供了一个统一接口,访问子系统中的一群接口,外观定义了一个高层接口,让子系统更原创 2017-10-30 16:07:01 · 1052 阅读 · 0 评论 -
9,适配器模式-你多大鞋,我多大脚
一,前言随着上一篇原型模式的完成,6种创建型设计模式我们都说了一遍创建型模式包含:工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式后面将开始介绍7中结构型设计模式:(其中组合模式在开篇说过了)桥接模式,适配器模式,装饰模式,组合模式,享元模式,外观模式,代理模式这篇我们来说适配器模式实际项目中,经常会遇到以前的模块接口和当前设计的模块接口不吻合以至于无法复用的情况在项目模块中引入第原创 2017-10-26 14:51:53 · 786 阅读 · 0 评论 -
8,原型模式-DOTA-幻影长矛手
一,前言上一篇说了建造者模式,这篇说创建型设计模式的最后一个:原型模式实际开发中,有时需要为一个类创建多个实例,而有些类的实例化开销较大且耗时所以我们希望通过复制已创建的对象来创建相同或相似的对象,以减少实例化开销原型模式就是从一个对象创建另一个新的对象,使新的对象有具有原对象的特征的设计模式在进行原型模式之前,我们需要先了解一下原型模式所涉及到的其他知识点二,Java中的Cloneable接原创 2017-10-19 11:32:24 · 847 阅读 · 0 评论 -
7,建造者模式-麦当劳套餐
一,前言开始我们按照由易到难顺序进入,现在需要按照设计模式的分类进行了创建型模式包含:工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式前篇完成了工厂模式专题了,包括简单工程,工厂方法模式,抽象工厂模式下面两篇我们开始建造者模式和原型模式,这样就完成了创建型模式这一类的学习二,建造者模式建造者模式:将一个复杂的对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示我们以一个麦原创 2017-10-17 11:18:27 · 2048 阅读 · 0 评论 -
6,抽象工厂模式
1,前言如果我们说工厂方法模式是简单工厂的升级,那么这篇要说的抽象工厂模式就是工厂方法模式的升级工厂方法模式:使用继承实现,将对象的创建委托给子类(将对象的实例化延迟到子类),通过子类实现工厂方法创建对象,将产品的"实现"从使用中"解耦",降低了代码耦合度这篇我们说一下抽象工厂模式,代码上继续延用工厂方法模式外卖快餐店各种饭的例子传送门:简单工厂 传送门:工厂方法模式2,需求场景和技术实现抽象原创 2017-10-12 01:49:54 · 916 阅读 · 0 评论 -
5,工厂方法模式
1,前言我们将简单工厂,工厂方法,抽象工厂三种模式(虽然简单工厂并不算是一种模式)列为一个工厂专题前一篇介绍了简单工厂(可点击下边链接进入),它封装了创建具体对象的逻辑(变化的部分),增加产皮或改变产品的实现,不需要修改客户端,将产品的"实现"从使用中"解耦",降低了代码耦合度这篇我们说一下工厂方法模式,代码上继续沿用简单工厂外卖快餐店各种饭的例子工厂方法模式是在简单工厂基础上的进一步抽象传送门原创 2017-09-28 11:45:24 · 631 阅读 · 0 评论 -
4,简单工厂
1,前言上一篇我们说了单例,按照难度来递进,这次轮到工厂了工厂计划分三部分说:简单工厂,工厂方法,抽象工厂三部分争取使用相似或有关联的例子进行递进式的讲解这样一来,既可以实现三种工厂的对比,又可以说明根据需求变化工厂模式逐渐演变的过程简单工厂实际并不属于一种设计模式,但这里我们就当成一种设计模式来说,主要是给后边两个模式做铺垫2,场景外卖有各种饭,工厂这部分就用这些饭来做例子,将工厂模式用原创 2017-09-26 00:37:17 · 1071 阅读 · 0 评论 -
3,单例模式
1,前言前边已经说了迭代器和组合,今天说单例模式大多数人可能会认为单例模式是最简单的设计模式,没有之一好吧,我承认单例确实很简单,但似乎还没有简单到大多数人想的那样所以第一篇没有说单例,放到第四篇才拿出来2,单例模式单例模式:保证一个类仅有一个实例,并提供一个全局访问点通过new关键字实例化一个类显然是不能保证这个类仅有一个实例存在的我们需要做三件事: 1,私有化无参构造函数,阻止原创 2017-09-19 03:22:15 · 1020 阅读 · 4 评论 -
1+2:组合迭代器
前面我们已经了解了两种设计模式 1,迭代器模式 : 封装集合的遍历方式,使不同集合可以使用相同的方式进行遍历 2,组合模式 :原创 2017-09-14 17:17:46 · 798 阅读 · 0 评论 -
2,组合模式
一,前言上一节我们介绍了 [迭代器模式](http://blog.csdn.net/ABAP_Brave/article/details/54949056)按照灵活性和复杂度递增的原则,这一节说一下组合模式相对于较复杂的设计模式来讲,组合模式适用的场景相对比较固定就是大家常说的"树形结构","整体/部分"等,具有层次关系的应用场景二,背景由于之前早点铺和炒菜馆合并了,所以饭店的菜单包含早餐原创 2017-09-12 15:15:00 · 531 阅读 · 0 评论 -
1,迭代器模式
一,前言是的,我们第一个要介绍的设计模式,不是单例,也不是工厂,是迭代器说一下先介绍迭代器的原因:首先,这个模式很简单,透过这个设计模式,我们可以说一说设计模式的几个原则其次,java和c#已经内置了迭代器,可以说这是一个已经废弃的设计模式,但依然有它的价值二,背景早点铺和炒菜馆要合并了,所以菜单也要合并在一起早点铺和炒菜馆的菜单分别使用ArrayList和数组进行存储使用不同的集合类型原创 2017-02-09 16:55:44 · 753 阅读 · 0 评论 -
1,设计模式连载概述
昨天和同事聊起来设计模式,将它再一次排到明年的学习计划中 我认为设计模式是一个程序员必知必会的技能 但鉴于真的不是100%的程序员都会深入学习并使用GOF-23种设计模式 所以暂时定位为”应知应会”的技术,并决定在CSDN上再连载一次23种设计模式大家都是从菜鸟开始的,起初我也不了解何为设计模式 我想大家都有这样的一个过程: 从不会写代码,到会写代码到自认为靠代码可以实现任何逻辑 那是一原创 2016-12-08 10:33:53 · 598 阅读 · 0 评论