本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
- kingwell.leng
最新文章列表
设计模式读书笔记-4适配器模式Adapter
1.定义
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
2.类图
3.实例
EnumerationIterator
package headfirst.adapter.iterenum;
import java.util.*;
public class EnumerationIterator i ...
设计模式读书笔记-3装饰模式Decorator
1.定义
动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。
2.类图
3.实例
StarbuzzCoffee
package headfirst.decorator.starbuzz;
public class StarbuzzCoffee {
public static void main(String args[]) {
Be ...
设计模式读书笔记-2状态模式State
1.定义
当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。
2.类图
3.实例
State
package headfirst.state.gumballstate;
public interface State {
public void insertQuarter();
public void ejectQuarter();
public ...
设计模式读书笔记-1代理模式Proxy(1)
1.定义
为其他对象提供一种代理以控制对这个对象的访问。
2.类图
3.比较
3.1动态代理和静态代理
静态代理实现的时候,在Subject接口上定义很多的方法,代理类里面自然也要实现很多方法。
动态代理实现的时候,虽然Subject接口上定义了很多方法,但是动态代理类始终只有一个invoke方法。这样,当Subject接口发生变化的时候,动态代理的接口就不需要 ...
#每天一种设计模式# 模板方法
《松本行弘的程序世界》对模板方法(Template method)的说明非常清晰:
在父类的一个方法中定义算法的框架,其中几个步骤的具体内容则留给子类来实现。
比如一个用于公司欢迎同事的程序:
class A
def initialize
@name = "jinbin"
@w ...
#每天一种设计模式# 观察者模式
系统常常会出现这种情况:
每一个部分需要知道整体的状态。比如Excel中,当你修改了一个单元格的值,可能横列的sum需要改变,纵列的sum需要改变,根据这个单元格做的图需要改变,是否被修改的按钮需要激活... 如果没有一种很好的处理方式,导致的结果将是系统 highly integrated。
仔细分析,比如Excel的单元格,我们可以抽象出单元格是a source of ne ...
单例模式代码实现与解析,java实现
Singleton模式和它的变体Double-Checked Locking模式比较简单,而且非常常用.
按照<设计模式>一书 ,singleton 意图:保证一个类有且仅有一个实例,并对外提供一个访问它的全局访问点.
其具体的关键特征和工作原理,不在此文表述,可以参看<Design Patterns Explained>一书.
以下逐步提供代码实现:
代码1, 最经 ...
JDK API , java io 笔记整理--从模式看JDK IO
Java I/O库的设计原则
Java语言的I/O库是对各种常见的流源,流汇以及处理过程的抽象化。客户端的Java程序不必知道最终的流源,流汇是磁盘上的文件还是数组等;也不必关心数据是否经过缓冲的,可否按照行号读取等处理的细节。
书中提到了,对于第一次见到Java/IO库的人,无不因为这个库的庞杂而感到困惑;而对于熟悉这个库的人,而又常常为这个库的设计是否得当而争论不体。书的作者提出自己 ...
(Excerpt) @Singleton Annotation: A Easier Way
Whether the singleton is pattern or an anti-pattern, there are still some cases where we need to create singletons. We're used to create a private constructor, a getInstance() method for a static field ...
J2EE 核心模式(Core J2EE Patterns)学习随心理解、随手记录(七)
Web Service中转:暴露可通过XML和web协议访问的服务,并将对服务的请求转发给真实的服务组件。通常有许多Web Service是不希望暴露出来的,有时有一些服务又需要聚合起来使用,这时候就需要Web Service中转。在使用中转前的Web Service需要被改造,以支持中转的接口(例如一个本地接口)。这个模式和Facade很类似,只不过它的定位放在了远程接口上。
微架构:一组 ...
J2EE 核心模式(Core J2EE Patterns)学习随心理解、随手记录(六)
集成层模式:
数据访问对象:Data Access Object。提炼和封装对持久化存储介质的访问。DAO封装了数据源的实现细节,总是面向API调用者提供统一的接口。DAO应当被实现为无状态的对象,这样就可以成为轻量的对象,不需要考虑线程、同步、缓存等问题,而把这些问题下沉到数据层去完成。
以我参与的项目的缓存的使用举例,模型DAO并不做任何的缓存行为,数据库使用自身的缓存能力,并且在必要 ...
J2EE 核心模式(Core J2EE Patterns)学习随心理解、随手记录(五)
业务对象:利用对象模型把业务数据和业务逻辑分离开来。业务对象在最前端(客户端)和最后端(数据资源)都会进行业务数据形式的转化。业务对象的实现通常有两种方式:POJO + JDO 或者 Entity Bean + BMP/CMP。业务对象包含业务逻辑和业务状态。
J2EE系统中面向过程向面向对象转变有时甚至仅仅区别于最初的一念之差。没有什么是绝对的事情,如果业务非常简单,客户端通过浅浅的显示层,直接 ...
J2EE 核心模式(Core J2EE Patterns)学习随心理解、随手记录(四)
业务层模式:
业务代表:Business Delegate。封装对业务服务的访问,隐藏服务层具体实现细节,主要为降低客户端和服务层之间的耦合。除了隐藏服务细节、处理服务异常等基础功能以外,还可以做服务的缓存。业务代表是客户端的直接客户,起到客户端业务抽象层的作用,而业务代表的另一头,常常连接着会话门面。
比较常用的情况就是在某种远程连接和业务处理的基础上,使用业务代表把这些细节统统包装起来 ...
Design Patterns:Singleton in Java code
本文是java简单实现singleton,用代码体会它
什么是singleton?
在new之前,需要判断是否存在实例(如果存在,返回它;如果不存在,生成实例)。如:
static public Singleton instance() {
if (null == _instance) {
_instance = new Singleton();
}
ret ...
Design Pattern | 设计模式
Do you use design patterns?
http://stackoverflow.com/questions/11586/do-you-use-design-patterns引用Any large program that is well written will use design patterns, even if they aren't named or recognized ...