
设计模式
小浣熊6616
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式——单例模式
1,单例定义: Singleton模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。2,单例模式适合场景 单例模式适合于一个类只有一个实例的情况,比如窗口管理器,打印缓冲池,数据库连接和文件系统,它们都是原型的例子。 典型的情况是,那些对象的类型被遍及一个软件系统的不同对象访问,因此需要一个全局的访问指针,这便是众所周知的单例模式的应用。当然这只有在你确信你不再...原创 2012-12-12 11:22:59 · 134 阅读 · 0 评论 -
所谓“懒汉式”与“饿汉式”
原创 2012-12-12 13:24:21 · 88 阅读 · 0 评论 -
设计模式——简单工厂模式
原创 2012-12-14 13:38:59 · 95 阅读 · 0 评论 -
设计模式——工厂方法模式、抽象工厂模式
怪的:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上Audi说“开奥迪车!”。你一定说:这人有病!直接说开车不就行了?! 而当把这个暴发户的行为放到我们程序设计中来时,会发现这是一个普遍存在的现象。幸运的是,这种有病的现象在OO(面向对象)语言中可以避免了。下面就以Java语言为基础来引入我们本文的主题:工厂模式。二、分类 工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。工厂模式在《Java与原创 2012-12-17 10:02:04 · 103 阅读 · 0 评论 -
设计模式——建造者模式(Builder Pattern)
原创 2012-12-18 14:03:15 · 103 阅读 · 0 评论 -
建造者模式(Builder Pattern)——举例
原创 2012-12-18 14:23:52 · 91 阅读 · 0 评论 -
设计模式——Prototype(原型)
原创 2012-12-19 13:38:21 · 88 阅读 · 0 评论 -
设计模式——适配器模式(adapter)
原创 2012-12-24 14:01:52 · 102 阅读 · 0 评论 -
设计模式——桥接模式(Bridge)
原创 2012-12-27 10:38:20 · 169 阅读 · 0 评论 -
设计模式——组合模式(Composite)
mposite比较容易理解,想到Composite就应该想到树形结构图。组合体内这些对象都有共同接口,当组合体一个对象的方法被调用执行时,Composite将遍历(Iterator)整个树形结构,寻找同样包含这个方法的对象并实现调用执行。可以用牵一动百来形容。Composite好处: 1.使客户端调用简单,客户端可以一致的使用组合结构或其中单个对象,用户就不必关心自己处理的是单个对象还是整个组合结构,这就简化了客户端代码。 2.更容易在组合体内加入对象部件,客户端不必因为加入了新的对原创 2013-01-05 13:43:33 · 102 阅读 · 0 评论 -
设计模式——模板模式(Template)
原创 2013-06-26 10:30:07 · 103 阅读 · 0 评论 -
设计模式——观察者模式(Observer)
原创 2013-07-05 14:43:30 · 121 阅读 · 0 评论 -
设计模式——单例模式
有一个实例的情况,比如窗口管理器,打印缓冲池,数据库连接和文件系统,它们都是原型的例子。 典型的情况是,那些对象的类型被遍及一个软件系统的不同对象访问,因此需要一个全局的访问指针,这便是众所周知的单例模式的应用。当然这只有在你确信你不再需要任何多于一个的实例的情况下。 还有, singleton能够被状态化; 这样,多个单态类在一起就可以作为一个状态仓库一样向外提供服务,比如,你要论坛中的帖子计数器,每次浏览一次需要计数,单态类能否保持住这个计数,并且能synchronize的安全自动加1,如果你要原创 2012-12-12 11:22:59 · 97 阅读 · 0 评论 -
【转载】java设计模式—Null Object模式
相信大家一定在开发中见过并且写过类似这样的代码:public Book getBook(int id) { if (id < 0) { return null; } return new Book(1, "Design Pattern", 100);Book book = getBook(-1);if (book != null) { }...原创 2013-08-29 15:54:13 · 167 阅读 · 0 评论 -
所谓“懒汉式”与“饿汉式”
所谓“懒汉式”与“饿汉式”的区别,是在与建立单例对象的时间不同。1,“懒汉式”是在你真正用到的时候才去建这个单例对象: 比如:有个单例对象private static Student student = null; //不建立对象Student getInstance(){ if(student == null) { //先判断是否为空 ...原创 2012-12-12 13:24:21 · 120 阅读 · 0 评论 -
设计模式——简单工厂模式
Java简单工厂简单工厂不是一个标准的设计模式,但是它实在是太常用了,简单而又神奇,所以还是需要好好掌握的,就当是对学习设计模式的热身运动吧。为了保持一致性,我们尽量按照学习其它模式的步骤来进行学习。1 场景问题大家都知道,在Java应用开发中,要“面向接口编程”。那么什么是接口?接口有什么作用?接口如何使用?一起来回顾一下:1.1 接口回顾(1)Java中接口的...原创 2012-12-14 13:38:59 · 104 阅读 · 0 评论 -
设计模式——工厂方法模式、抽象工厂模式
一、引子 话说十年前,有一个暴发户,他家有三辆汽车——Benz奔驰、Bmw宝马、Audi奥迪,还雇了司机为他开车。不过,暴发户坐车时总是怪怪的:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上Audi说“开奥迪车!”。你一定说:这人有病!直接说开车不就行了?! 而当把这个暴发户的行为放到我们程序设计中来时,会发现这是一个普遍存在的现象。...原创 2012-12-17 10:02:04 · 290 阅读 · 0 评论 -
设计模式——建造者模式(Builder Pattern)
Builder模式定义: 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 [构建与表示分离,同构建不同表示] Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们,用户不知道内部的具体构建细节。 Builder模式是非常类似抽象工厂模式,细微的区别大概只有在反复使用中才能体会到. 与...原创 2012-12-18 14:03:15 · 156 阅读 · 0 评论 -
建造者模式(Builder Pattern)——举例
当做一种事情的步骤是必不可少的。也就是说做这种事情,所有的步骤是不会少的。但是这些事情的具体做法的步骤实现又是不一样的。 由每个个具体的对象去实现 。 比如做一道菜,放盐,油等这些都是不可少的,但是每个人放的量又不一样。 有的时候我们做的时候就可能会因为一件事情的步骤太多而忘记了做某个步骤,造成后面做出来的东西是不能用的。 建造者模式:它的原理就是像上面那样,为了避...原创 2012-12-18 14:23:52 · 118 阅读 · 0 评论 -
设计模式——Prototype(原型)
在工厂模式、建造者模式等中,我们使用了不同的构造方法(各种Factory或者Builder)去代替或者说掩盖Java语言之中“new”这个操作来创建对象实例。Java中要创建一个新的对象并不一定只能靠“new”这个关键字的,我们还有“clone()”。在接触原型模式之前,我们先来了解一下克隆一些知识: 1.clone()方法在Java中从Object类开始就具备,并且作为原生(Native...原创 2012-12-19 13:38:21 · 137 阅读 · 0 评论 -
设计模式——适配器模式(adapter)
适配器模式定义:Adapter模式又叫适配器模式,顾名思义,这个模式就是把一个不能用的东西“适配”成可以用的东西。将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份。为何使用?我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自类的接口,但是如果我们没有源代码,或者,我们不愿意为了一个应用而修改各自的接...原创 2012-12-24 14:01:52 · 125 阅读 · 0 评论 -
设计模式——桥接模式(Bridge)
一、 桥梁(Bridge)模式Bridge模式定义 : 将抽象和行为划分开来,各自独立,但能动态的结合。桥梁模式的用意: 在面向对象设计的基本概念中,对象这个概念实际是由属性和行为两个部分组成的,属性我们可以认为是一种静止的,是一种抽象,一般情况下,行为是包含在一个对象中,但是,在有的情况下,我们需要将这些行为也进行归类,形成一个总的行为接口,这就是桥模式的用处。...原创 2012-12-27 10:38:20 · 148 阅读 · 0 评论 -
设计模式——模板模式(Template)
模板模式是类的行为模式。 1.定义: 定义一个操作中算法的骨架(或称为顶级逻辑),将一些步骤(或称为基本方法)的执行延迟到其子类中。 2.模板模式与继承 模板方法恰当地使用了继承。此模式可以用来改写一些拥有相同功能的相关的类,将可复用的一般性行为代码移到基类里面,而把特殊化的行为代码移到子类里面。 3.模板模式中的方法 ...原创 2013-06-26 10:30:07 · 130 阅读 · 0 评论 -
设计模式——组合模式(Composite)
Composite模式定义: 将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。 Composite比较容易理解,想到Composite就应该想到树形结构图。组合体内这些对象都有共同接口,当组合体一个对象的方法被调用执行时,Composite将遍历(Iterator)整个树形结构,寻找同样包含这个方法的对象并实现调用执行...原创 2013-01-05 13:43:33 · 156 阅读 · 0 评论 -
设计模式——观察者模式(Observer)
一、观察者模式定义简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者对象能够自动更新。 二、观察者模式的结构观察者(Observer)模式是对象的行为型模式,又叫做发表-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式...原创 2013-07-05 14:43:30 · 213 阅读 · 0 评论 -
【转载】java设计模式—Null Object模式
ok = getBook(-1);if (book != null) { } 系统在使用对象的相关功能时,总要检查对象是否为null,如果不为null,我们才会调用它的相关方法,完成某种逻辑。这样的检查在一个系统中出现很多次,相信任何一个设计者都不愿意看到这样的情况。为了解决这种问题,我们可以可以引入空对象,这样,我们就可以摆脱大量程式化的代码,对代码的可读性也是一个飞跃。等等,空对象是什么?它和null什么关系?空对象是一个没有实质性内容的对象,但他并不为null。你可以把原创 2013-08-29 15:54:13 · 101 阅读 · 0 评论