设计模式
zerowzj
仰俯天地,呵壁问天,泰然处之。
展开
-
简单工厂模式与工厂方法模式的相同点和不同点
简单工厂模式又称静态工厂方法模式。重命名上就可以看出这个模式一定很简单。它存在的目的很简单:定义一个用于创建对象的接口。 先来看看它的组成: 1)工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由一个具体类实现。 2)抽象产品角色:它一般是具体产品继承的父类或者实现的接口。在java中由接口或者抽象类来实现。 3)具体产品角色:工厂类所创建的对象原创 2008-04-07 10:09:00 · 759 阅读 · 0 评论 -
创建型模式——原型模式(Prototype Pattern)
一. 原型模式简介 原型模式(Prototype Pattern)也是一种创建型模式,它关注的是大量相似对象的创建问题。我们经常会遇到这样的情况:在系统中要创建大量的对象,这些对象之间具有几乎完全相同的功能,只是在细节上有一点儿差别。 这样的情形经常遇到。三国系列游戏是我最喜欢的游戏系列之一。你有没有注意到那里边上百位英雄的头像基本上很相似?你仔细区分就会发现,虽然每个人都不同,但基本上只具有转载 2008-04-07 10:30:00 · 784 阅读 · 0 评论 -
创建型模式——工厂方法模式(Factory Method Pattern)
一. 工厂方法模式简介 在简单工厂模式中,由一个工厂类(实际上是其中的某一个具体方法)负责决定实例化哪一个具体产品,从而接触客户和具体产品类直接的依赖关系。而工厂方法模式对这种思想进行了进一步的扩展,把这个实例化产品的方法抽象化(从而也抽象化了这个工厂类),把实例化哪一个具体产品类的决策延迟到它的子类中去。也就是说,这个抽象方法只定义了应该创建一个什么类(抽象),让子类去决定创建哪一个对象。转载 2008-04-07 10:40:00 · 568 阅读 · 0 评论 -
创建型模式——简单工厂模式(Simple Factory Pattern)
一. 简单工厂模式概述 简单工厂模式并不是GoF《Design Patterns》一种中描述的23种设计模式之一,但是包含在了Cooper的《Introduction to Desgin Patterns in C#》中。可以毫不夸张的说,简单工厂模式是目前应用最多的模式。 简单工厂模式处理的是这样一种问题:有一系列功能及其相似的产品,在客户看来完全可以互相替代。客户需要使用的是其中一个产转载 2008-04-07 10:44:00 · 604 阅读 · 0 评论 -
设计模式概述
什么是设计模式?通常会有以下几个定义:设计模式描述了软件设计过程中某一类常见问题的一般性解决方案。面向对象设计模式描述了面向对象设计过程中,特定场景下,类与相互通信的对象之间常见的组织关系。每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次的使用该方案而不必重复劳动。说到设计模式,首先必须提到的就是GoF,1994年,Eric转载 2008-04-07 10:47:00 · 503 阅读 · 0 评论 -
创建型模式——抽象工厂模式(Abstract Factory Pattern)
一. 抽象工厂模式概述 抽象工厂模式是工厂模式中最一般、最抽象的一种表现形式,是对工厂方法模式的进一步扩充。工厂方法模式可以对一类产品的建造进行管理,将建造具体产品的建造过程交给到具体的子类中完成。如果需要管理两类及以上产品的建造过程呢?当然很自然的就可以想到可以使用多个工厂方法实现。这样做的问题在于,一是导致工厂过于分散不好管理;二是这几类产品之间如果存在密切的关系,他们的建造过程并不能完转载 2008-04-07 10:50:00 · 774 阅读 · 0 评论 -
创建型模式——生成器模式(Builder Pattern)
一. 生成器模式简介 生成器模式也有称为建造者模式。生成器模式的意图在于将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示(GoF)。在软件设计中,有时候面临着一个非常复杂的对象的创建工作。这个复杂的对象通常可以分成几个较小的部分,由各个子对象组合出这个复杂对象的过程相对来说比较稳定,但是子对象的创建过程各不相同并且可能面临变化。根据OOD中的OCP原则,我们自然应该对这些转载 2008-04-07 11:00:00 · 1182 阅读 · 0 评论 -
面向接口编程
“面向接口编程”,英文的定义是“Program to an interface, not an implementation”。它是面向对象编程里面的一个设计原则。所谓原则,就是“你最好按我的样子来做,实在不行也可以违反”。 面向对象编程有三个主要的特性,即是封装,多态,继承。面向接口编程是多态特性的一个表现,就是说你的设计遵循了面向接口编程的原则,那么你就具有了面向对象原创 2008-04-07 11:40:00 · 788 阅读 · 0 评论