设计模式略谈

原创 2004年04月13日 14:05:00

设计模式略谈

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

  讲述设计模式之前,我想,我们首先应该要理解,为什么要学习设计模式。

 

  我们先还是看看,是怎么定义模式的吧:每一个模式描述了定义在我们周围不断重复发生的问题,以及该问题解决方案的核心。这样,你就可以一次又一次的使用该方案而不必做重复的劳动。

 

  所以,我们学习设计模式,就是为了可以设计出 可复用的、可维护的、可扩展的 系统。

 

  当然,上面只是简述了一点,我们为什么要学以及设计模式的一点点概念性的东西。下面,我们就要稍稍深入的来了解一下。

 

类模式和对象模式。

 

  1.       类模式处理类和子类之间的关系,这些关系通过继承建立,是静态的,在编译时刻便确定下来了。

  2.       对象模式处理对象间的关系,这些关系在运行时刻是可以变化的。

 

从上面来看,类模式就是处理类之间的关系,而对像模式就是要处理对象之间的关系。前者是静态的,而后,则是动态随时变化的。

 

不过现在大部分模式都属于对象模式。

 

创建型模式。

 

  创建型模式抽象了实例化过程。解决在创建对象时,如何动态决定怎样去创建对象,创建什么对象,以及如何组合和表示这些对象。创建型模式描述了怎么构造和封装这些动态的决定。

 

  当现在系统的越来越依赖于对象合成,创建型模式则变得越来越重要。不过,一直以来,创建型模式常常重复的一些让人看不明白的话题。

 

1.       它们是如何将系统使用的是哪些具体类的信息隐藏起来的

2.       它们是如何隐藏这些类的实例是怎么创建和组织在一起的信息的。

3.       它们允许你在要创建什么、谁来创建、如何创建以及何时创建这些方面提供了很大的灵活性。

 

 

简单工厂(Simple Factory)

 

简单工厂模式是类的模式。

 

由一个工厂类根据传入的参量决定创建出哪一种类型的产品实例。

 

该模式设计到工厂、抽象产品以及具体产品三个角色。其中,工厂是一个具体类该模式的核心,包含与应用紧密相关的商业逻辑。客户直接调用工厂创建产品对象。

 

对于客户而言,它所能知道的关于产品的唯一信息来源于抽象父类Product,它只能指定工厂返回一个Product,工厂将根据自己的商业逻辑(如运行环境、时间设置等)创建出一个ConcreteProduct,并将其转型为Product返回给客户。

 

工厂方法(Factory Method)

 

工厂方法是类的创建模式。

 

工厂方法是对简单工厂的进一步抽象和推广。在工厂方法中,工厂类成为了抽象类,其实际的创建工作将由其具体子类来完成

 

工厂方法的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中去。

 

抽象工厂(Abstract Factory)

 

抽象工厂是所有工厂模式中最为抽象和最具有一般性的一种形态。

 

抽象工厂可以向客户提供一个接口,使得客户可以在不必指定产品的具体类型的情况下,创建多个产品族中的产品对象。

 

 

上面只是略谈了一下设计模式的基本概念,以及对工厂模式比较详细的概念解释。这些都是我在上课时老师的讲解和幻灯片里整理出来了。自己看了之后是比较了解了,可能还有些方面描述得不清楚。如果有需要,我会在后几天,把这些理解透之后,加上Java中设计模式的实现,然后还补上一篇比较详细的文章吧。

Zend Framework1-框架设计略谈-相关设计模式以及整体设计

一.概述 Zend Framework是PHP官方提供的框架,Zend Framework是基于简单,面向对象的最佳实践,Zend Framework安全,可靠,是最常用的PHP框架之一。 Zen...
  • wjtlht928
  • wjtlht928
  • 2015年03月28日 07:06
  • 281

常见的23种设计模式,你知道多少?

原网址:http://sentsin.com/web/131.html 这几天一直很忙,没有时间发表帖子和对编程进行一些思考,我喜欢在写一个东西的时候或者做一件事情的时候,仔细斟酌和想清楚,...
  • sonta
  • sonta
  • 2015年03月17日 22:59
  • 1363

几种常用的设计模式介绍

几种常用的设计模式介绍 1.    设计模式的起源 最早提出“设计模式”概念的是建筑设计大师亚力山大Alexander。在1970年他的《建筑的永恒之道》里描述了投计模式的发现,因为它已经存在...
  • XSL1990
  • XSL1990
  • 2013年11月16日 18:17
  • 132108

设计模式总结之模式分类

话说软件江湖还是混沌之时,无门无派,无招无式,GoF(Gang of Four,四个大师),穷理之熟,融会贯通,合著了《Design Patterns: Elements of Reusable Ob...
  • cooldragon
  • cooldragon
  • 2016年08月11日 00:41
  • 3351

设计模式经典书籍推荐

很多朋友问学习设计模式的书籍,老大沧浪在FAQ里有个简短的叙述,这里我引申一下,说说自己看过或者翻过的设计模式书籍,由于水平所限,肯定有不对的地方,希望大家指正,如果大家看到好的模式相关书籍,希望能回...
  • a316212802
  • a316212802
  • 2016年03月23日 10:35
  • 11637

设计模式——怎么就给分成三类了呢?

大家都说设计模式可根据目的划分为: 1、创建型(creational):主要用于处理对象的创建,实例化对象 2、结构型(structural):处理类或对象间的组合 3、行为型(behavior...
  • Daybreak1209
  • Daybreak1209
  • 2014年03月24日 20:49
  • 2019

设计模式的三种类型

设计模式分为三种类型,共23类。 一、创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。 二、结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模...
  • cyjch
  • cyjch
  • 2016年05月26日 13:29
  • 2459

五种常见设计模式

设计模式 一书将设计模式引入软件社区,该书的作者是 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides Design(俗称 “四人帮”)。所...
  • it_users
  • it_users
  • 2017年01月22日 22:37
  • 5048

Android设计模式之23种设计模式一览

Android设计模式之23种设计模式一览 一  什么是设计模式? (1)基本定义:设计模式(Design pattern)是一套被反复使用的代码设计经验的总结。使用设计模式的目的是为了可重用代码...
  • happy_horse
  • happy_horse
  • 2016年03月16日 21:03
  • 14306

设计模式与重构是一种追求

1         设计模式与重构是一种追求 当一个软件工程师(DEV)一开始编码的时候,因为技术的缺乏,追求的必当是完成任务(Coding)。 随着时间的发展,DEV已经能够完成任务之后。也便开始追...
  • sunyaqing2008
  • sunyaqing2008
  • 2016年04月05日 12:06
  • 530
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式略谈
举报原因:
原因补充:

(最多只允许输入30个字)