51
Dev开发社区
首页
文章
问答
工具
搜索
登录
注册
#新模式
Java设计模式5:原型模式
原型模式原型模式属于对象的创建模式,通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象,这就是原型模式的用意。 原型模式结构原型模式要求对象实现一个可以克隆机身的接口(关于克隆,请参考Cloneable接口和Object的clone()方法),这样就可以通过复制...
代码星球
·
2020-07-29
Java
设计模式
原型
模式
Java设计模式4:单例模式
前言非常重要,单例模式是各个Java项目中必不可少的一种设计模式。本文的关注点将重点放在单例模式的写法以及每种写法的线程安全性上。所谓"线程安全性"的意思就是保证在创建单例对象的时候不存在竞争,只会创建出一个单例对象。 单例模式作为对象的创建模式,单例模式确保其某一个类只有一个实例,而且自行实例化并向整个系统...
代码星球
·
2020-07-29
Java
设计模式
单例
模式
Java设计模式3:工厂方法模式
工厂方法模式工厂方法模式是类的创建模式。工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工厂推迟到子类中。 工厂方法模式工厂方法模式是对简单工厂模式进一步抽象的结果。假如是不使用反射的工厂方法模式,那么所有的if...elseif...else都放在工厂类中,势必造成工厂类的无限臃肿这时候就需要...
代码星球
·
2020-07-29
Java
设计模式
工厂
方法
模式
Java设计模式2:简单工厂模式
简单工厂模式简单工厂模式是类的创建模式,又叫做静态工厂方法模式。简单工厂模式由一个工厂对象决定生产出哪一种产品类的实例。 为什么要使用简单工厂模式原因很简单:解耦。A对象如果要调用B对象,最简单的做法就是直接new一个B出来。这么做有一个问题,假如C类和B类实现了同一个接口/继承自同一个类,系统需要把B类修改...
代码星球
·
2020-07-29
Java
设计模式
简单
工厂
模式
Java设计模式1:设计模式概论
设计模式是什么设计模式(Designpattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易地被他人理解、保证代码可靠性。毫无疑问,设计模式于己于人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石脉络,如同大厦的结构一样。总体...
代码星球
·
2020-07-29
设计模式
Java
概论
Java虚拟机6:内存溢出和内存泄露、并行和并发、Minor GC和Full GC、Client模式和Server模式的区别
前言之前的文章尤其是讲解GC的时候提到了很多的概念,比如内存溢出和内存泄露、并行与并发、Client模式和Server模式、MinorGC和FullGC,本文详细讲解下这些概念的区别。 内存溢出和内存泄露的区别1、内存溢出内存溢出指的是程序在申请内存的时候,没有足够大的空间可以分配了。2、内存泄露内存泄露指的...
代码星球
·
2020-07-29
内存
GC
模式
Java
虚拟机
再谈AbstractQueuedSynchronizer2:共享模式与基于Condition的等待/通知机制实现
共享模式acquire实现流程上文我们讲解了AbstractQueuedSynchronizer独占模式的acquire实现流程,本文趁热打铁继续看一下AbstractQueuedSynchronizer共享模式acquire的实现流程。连续两篇文章的学习,也可以对比独占模式acquire和共享模式acquire的区别...
代码星球
·
2020-07-29
再谈
AbstractQueuedSynchronizer2
共享
模式
基于
再谈AbstractQueuedSynchronizer1:独占模式
关于AbstractQueuedSynchronizerJDK1.5之后引入了并发包java.util.concurrent,大大提高了Java程序的并发性能。关于java.util.concurrent包我总结如下:AbstractQueuedSynchronizer是并发类诸如ReentrantLock、Count...
代码星球
·
2020-07-29
再谈
AbstractQueuedSynchronizer1
独占
模式
命令模式坚决svn树冲突(local unversioned, incoming add upon update)
当工作目录修改删除过时更新使用svn更新就容易发生树冲突“TreeConfilict”.会出现类似提示。localunversioned,incomingadduponupdate 如果使用图形化客户端可以通过对比文件和解决冲突按钮进行解决,如果是使用命令行的,情况类似如下:(其中&nbs...
代码星球
·
2020-07-24
命令
模式
坚决
svn
冲突
《设计模式之禅》之门面模式
门面模式也叫外观模式,是一种比较常用的封装模式,其定义如下:要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。1.Facade门面角色客户端可以调用这个角色的方法。此角色知晓子系统的所有功能和责任。一般情况下,本角色会将所有从客户端发来的请求委派到相应的子...
代码星球
·
2020-07-24
设计模式之禅
门面
模式
《设计模式之禅》之观察者模式
观察者模式也叫做发布订阅模式,它是一个在项目中经常使用的模式,其定义如下:定义对象间一种一对多的依赖关系,使得没当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。观察者模式的几种角色名称:(1)Subject被观察者定义被观察者必须实现的职责,它必须能够动态地增加、取消观察者。它一般是抽象类或者实现类,...
代码星球
·
2020-07-24
设计模式之禅
观察者
模式
《设计模式之禅》之组合模式
组合模式也叫合成模式,有时又叫做部分-整体模式,主要用来描述部分与整体的关系,其定义如下:将对象组合成的树形结构以表示”部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。组合模式的几个角色:(1)Component抽象构件角色定义参加组合对象的共有方法和属性,可以定义一些默认...
代码星球
·
2020-07-24
设计模式之禅
组合
模式
《设计模式之禅》之迭代器模式
它提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。迭代器是为容器服务的,那什么是容器?能容纳对象的所有类型都可以称之为容器,例如Collection集合类型、Set类型等,迭代器就是为解决遍历这些容器中的元素而诞生的。Iterator抽象迭代器抽象迭代器负责定义访问和遍历元素的接口,而且基本上是有...
代码星球
·
2020-07-24
设计模式之禅
迭代
模式
《设计模式之禅》之适配器模式
将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式的三个角色:1.Target目标角色该角色定义把其他类转换为何种接口,也就是我们的期望接口。2.Adapter源角色你想把谁转换成目标角色,这个”谁”就是源角色,它是已经存在的、...
代码星球
·
2020-07-24
设计模式之禅
适配器
模式
《设计模式之禅》之策略模式
策略模式是一种比较简单的模式,也叫做政策模式,其定义如下:定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式使用的是面向对象的继承和多态机制,我们看看策略模式的三个角色:1.Context封装角色它也叫上下文角色,起承上启下封装作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化。2.Stra...
代码星球
·
2020-07-24
设计模式之禅
策略
模式
首页
上一页
...
50
51
52
53
54
...
下一页
尾页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他