C#面向对象的设计模式 抽象工厂模式

转载 2006年06月08日 17:55:00
C#面向对象的设计模式 抽象工厂模式
Abstract Factory
 
new 的问题
常规的对象创建方法:
 //创建一个Road对象
 Road road = new Road();
new的问题:
 实现依赖,不能应对“具体实例化类型”的变化。
解决思路:
 封装变化点——哪里有变化,封装哪里
 潜台词:如果没有变化,当然不需要额外的封装!
 
工厂模式的缘起
 变化点在“对象创建”,因此就封装“对象创建”
 面向接口编程——依赖接口,而非依赖实现
 最简单的解决方法:
 Class RoadFactory
 {
Public static Road CreateRoad()
{
 Return new Road();
}
}
//创建一个Road对象
Road road = roadFactory.CreateRoad();
 
创建一系列相互依赖的对象
 相互依赖
 
简单工厂的问题
 简单工厂的问题:
    不能应对“不同系列”的变化。比如有不同风格的游戏场景——对应不同风格的道路、房屋、地道……
如何解决:
    使用面向对象的技术来“封装”变化点。
 
动机Motivation:
 在软件系统中,经常面临“一系列相互依赖的对象”的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作。
 如何应对这种变化?如何绕过常规的对象创建(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合?
 
意图(Intent)
 提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们具体的类。Gof
 
结构
 

C# 设计模式 之 抽象工厂模式

        工厂方法模式在于需要根据条件来控制对哪个类进行实例化,而抽象工厂模式确定实例化的往往设计到多个类,目的是创建一组相关或者相互依赖的对象提供支持!重点就是在于处理一组相关或者相互依赖类!...
  • scucj
  • scucj
  • 2007年09月23日 01:12
  • 2792

【C#设计模式-抽象工厂模式】

抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。 抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,...
  • heyangyi_19940703
  • heyangyi_19940703
  • 2016年04月20日 13:04
  • 1978

C#设计模式:抽象工厂方法模式

今天说一下抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。抽象工厂允许客户使用抽象的接口来创建一组相关的产品,而不需要知道实际产出的具体产品是什么,这样一来,客户就从...
  • dyllove98
  • dyllove98
  • 2013年02月20日 16:29
  • 1058

C#设计模式02-抽象工厂模式(附源码)

抽象工厂模式是所有工厂模式中最为抽象的模式,是抽象程度最高的模式,也是最难理解的一种工厂模式。         现在举一个生活中的案例来说明抽象工厂模式,电视是我们生活中必不可说的电器,但是电视有很多...
  • bhdxmaomi
  • bhdxmaomi
  • 2016年01月12日 15:07
  • 1161

【java设计模式】之 抽象工厂(Abstract Factory)模式

1. 女娲的失误         上一节学习了工厂模式,女娲运用了该模式成功创建了三个人种,可是问题来了,她发现没有性别……这失误也忒大了点吧……竟然没有性别,那岂不是……无奈,只好抹掉重来了,于是所...
  • eson_15
  • eson_15
  • 2016年04月26日 23:49
  • 11666

C#面向对象设计模式纵横谈1

面向对象设计模式描述里面向对象设计过程中、特定场景下、 类与相互通信的对象之间常见的组织关系。设计模式是通过不断的重构得来的。敏捷开发:源代码就是设计懂面向对象设计模式的前提:懂面向对象面向对象的三...
  • shendejun
  • shendejun
  • 2015年06月08日 17:11
  • 369

走穿java23种设计模式-3抽象工厂模式详解

走穿java23种设计模式-3工厂方法模式详解工厂模式可以分为:简单工厂模式,工厂方法模式,抽象工厂模式。简单工厂模式就没什么好说的了,无非是所有的东西都写在一个类里面,要什么就调用什么,如果要添加新...
  • wenzhi20102321
  • wenzhi20102321
  • 2017年10月03日 03:24
  • 741

设计模式——抽象工厂模式详解

0.前言写在最前面,本人的设计模式类博文,建议先看博文前半部分的理论介绍,再看后半部分的实例分析,最后再返回来复习一遍理论介绍,这时候你就会发现我在重点处标红的用心,对于帮助你理解设计模式有奇效哦~无...
  • SEU_Calvin
  • SEU_Calvin
  • 2016年08月21日 17:05
  • 10567

Java设计模式—工厂方法模式&抽象工厂模式

工厂方法模式与抽象工厂模式都是设计模式中重要而且常见的模式。 通用类图如下:         在工厂方法模式中,抽象产品类Product负责定义产品的共性,实现对事物最抽象的定义;C...
  • qq_25827845
  • qq_25827845
  • 2016年09月11日 15:07
  • 4765

大话设计模式C++实现-第15章-抽象工厂模式

一、UML图 二、包含的角色 (1)抽象工厂 (2)具体工厂:包括具体工厂1和具体工厂2。具体工厂1用于生产具体产品A1和具体产品B1,具体工厂2用于生产具体产品A2和具体产品B2; (3)抽象产...
  • XD_lixin
  • XD_lixin
  • 2014年11月16日 23:09
  • 1622
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#面向对象的设计模式 抽象工厂模式
举报原因:
原因补充:

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