本月博客排行
-
第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
最新文章列表
《Java设计模式菜鸟系列教程》电子版书正式发布,欢迎大家下载
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/40031567
今天来对这23种设计模式做个总结。咱使用设计模式的目的是为了可重用代码、让代码更 ...
Java23种设计模式
创建型
1. Factory Method(工厂方法)
2. Abstract Factory(抽象工厂)
3. Builder(建造者)
4. Prototype(原型)
5. Singleton(单例)
结构型
6. Adapter Class/Object(适配器)
7. Bridge(桥接)
8. Composite(组合)
9 ...
java设计模式——装饰者模式
一、什么情况下考虑使用“装饰者模式”?
当我们需要将责任动态的附加到对象上的时候;也就是说,我们开发设计的对象中有某一部分的功能现在还不能确定,以后需要动态的添加或者去掉。或者是在使用继承比较困难的时候,可以采用组合的实现方式(继承与复用)。
结合下面一个实际可能应用的场景来进行分析:
此为某一咖啡店的简单的菜单系统,其中所有的咖啡必须继 ...
java设计模式——设计基本原则
设计原则一:找出应用中可能需要变化的部分,把它们独立出来,不要和不需要变化的代码混在一起。 当我们的需求改变时,需要修改某一部分的代码,可以将这一部分的代码抽取出来,如果以后再次发生变化,可以只修改抽取出来的代码,而不必修改其他的代码。设计原则二:针对接口编程,而不是针对实现编程。 利用java中多态的特性,针对超类型的编程,而不必关心具体执行时真正对象的类型。
...
抽象工厂模式(Abstract)
学习抽象工厂模式首先要了解什么是产品族和产品等级这两个概念,所谓的产品族,是指位于不同产品等级结构中功能相关联的产品组成的家族,抽象工厂模式所提供的一系列产品就组成一个产品族,而产品等级的概念,其实就是一个具体产品,简单的来区分产品族和产品等级,就是产品族是抽象的,而产品等级是具体的。
举个很简单的例子,苹果iPhone手机和三星Galaxy手机,是同一个产品等级,它们 ...
适配器(类适配器、对象适配器模式)
一:类适配器模式
假如我们有一个Person类,这个Person类中有吹,拉方法。在系统开发到一半我们发现我们需要该类再添加两个方法弹、唱,以便实现吹、拉、弹、唱的功能。但纵观全系统,弹、唱功能只是临时使用的一次。并且Person类在全系统中已经设计合理,我们不想再去改变该类的行为。这个时候怎么办呢?别急,类适配器模式可以解决此类问题。
也许你会说,为什么不直接在“源”中 ...
装饰模式-DecoratorPattern
我们都知道继承是对一个类功能的扩展,但是这种扩展在编译的时候已经定死了,是一种静态的扩展。而装饰模式是对对象功能的扩展,不对类功能扩展,就比如说,从硬盘读取数据字节流这个基本的功能,在java io 中只是在InputStream这个接口中定义的。这个类中有最基础的方法就是read方法,如果用FileInputStream这个类的对象去封装InputStream的对象,那么制造出来的对象就有 ...
排序算法(一)--冒泡排序
/**
* 冒泡算法 复杂度:N^2
* 原理:相邻两个元素比较,大的一个后移
* 比如:站一排的士兵,从左第一个开始跟右边的比较,高就交换位置,然后左的第二个又与第三个比 较,类推 比如:水里面的气泡,大的肯定是浮水最快的 (见图)
*
* @author @Ran
*/
public class Bubble extends AbstractSort< ...
【转载】java设计模式—Null Object模式
相信大家一定在开发中见过并且写过类似这样的代码:
public Book getBook(int id) {
if (id < 0) {
return null;
}
return new Book(1, "Design Pattern", 100);
...
java设计模式之观察者模式
今天在看张龙老师视频时对观察者模式又有了进一步的理解,把笔记记录下来。
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,让他们能够自动更新自己。
观察者模式的组成 –抽象主题角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。 ...
设计模式——观察者模式(Observer)
一、观察者模式定义
简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者对象能够自动更新。
二、观察者模式的结构
观察者(Observer)模式是对象的行为型模式,又叫做发表-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、 ...
单例模式常见的几种形式
一,饿汉式单例
//饿汉式单例1
public class Singleton1 {
private static final Singleton1 instance = new Singleton1();
private Singleton1(){}
public static Singleton1 getInstance(){
return instance;
}
...