设计模式学习摘要-抽象工厂
具体实现日志类
1。定义一个抽象的日志Log
public abstract class Log
{
public abstract void Write();
}
2。定义两个具体的日志类
public class EventLog:Log
{
public override void Write()
{
Console.WriteLine("EventLog write sucess !");
}
}
public class FileLog:Log
{
public override void Write()
{
Console.WriteLine("FileLog write sucess !");
}
}
具体实现工厂类
1。定义一个抽象工厂类LogFactory
public abstract class LogFactory
{
public abstract Log Create();
}
2。定义两个具体的工厂类
public class EventFactory:LogFactory
{
public override EventLog Create()
{
return new EventLog();
}
}
public class FileFactory:LogFactory
{
public override FileLog Create()
{
return new FileLog();
}
}
应用程序中调用
public class App
{
public static void Main(string[] args)
{
LogFactory factory=new EventFactory();//
Log log=factory.Create();//
log.Write();
}
}
利用发射机制进一步修改
<appSettings>
add key="factoryName" value="EventFactory"></add>
</appSettings>
pubic class App
{
public static void Main(string[] args)
{
string strfactoryName = ConfigurationSettings.AppSettings["factoryName"];
LogFactory factory;
factory = (LogFactory)Assembly.Load("FactoryMethod").CreateInstance("FactoryMethod." + strfactoryName);
Log log = factory.Create();
log.Write();
}
}
参考资料:
http://terrylee.cnblogs.com/archive/2006/01/04/310716.html
转载于:https://www.cnblogs.com/syringa-flz/archive/2007/04/10/707136.html
设计模式学习摘要-抽象工厂相关推荐
- 设计模式学习笔记——抽象工厂(Abstract Factory)模式
设计模式学习笔记--抽象工厂(Abstract Factory)模式 @(设计模式)[设计模式, 设计模式中文名, 设计模式英文名] 设计模式学习笔记抽象工厂Abstract Factory模式 基本 ...
- 设计模式C#描述——抽象工厂模式
设计模式C#描述--抽象工厂模式 阅读此文应先阅读简单工厂模式与工厂方法模式 抽象工厂模式是对象的创建模式,它是工厂方法模式的进一步推广. 假设一个子系统需要一些产品对象,而这些产品又属于一个以上的产 ...
- 设计模式二、抽象工厂模式
设计模式part2 1. 抽象工厂模式 工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题, ...
- JavaScript 23 种设计模式之 4 抽象工厂模式
JavaScript 23 种设计模式之 4 抽象工厂模式 概念与特点 结构与实现 应用场景 应用实例 总结 概念与特点 概念: 提供一组相关或相互依赖对象的接口.抽象工厂模式是工厂方法模式的升级版, ...
- c#设计模式学习1之工厂模式
c#设计模式学习1之简单工厂 进入程序员这个行业快一年了,写的程序就那么多,一直感觉写的程序没有质的飞跃,看看高手人家的程序,感觉和自己写的差的很大,什么n层了等,看起来都费力,仔细琢磨可能是设计模式 ...
- 【设计模式】之抽象工厂模式详解与应用(三)
开心一刻 [问:"怎么样才能给足男人面子"? 神回复:"露出腿上的淤青啊".] 课程介绍 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工 ...
- 【一】Java 设计模式学习记录: 工厂模式
文章目录 一.设计模式的分类 二.工厂模式 2.1 简单工厂模式 2.1.1 解决的问题 2.1.2 简单工厂模式是什么 2.1.3 优缺点 2.2 工厂方法模式 2.2.1 解决的问题 2.2.2工 ...
- 《软件架构与设计模式》关于 抽象工厂模式 的一个小例子
下面是题目的要求: 根据上面的要求,我首先是画出了UML类图: 接着,根据上面的UML类图写出源代码: 1.抽象产品类 该类定义了产品的共性,所有的具体产品都要实现这个类 1 abstract cla ...
- 设计模式之二抽象工厂设计模式
继上篇简单工厂设计模式之后,今天继续讲解抽象工厂设计模式.在简单工厂中,我们的工厂类一次只可以处理一类产品.那么如果我们想处理多类产品,简单工厂是满足不了的.必须要用抽象工厂设计模式. 我们先从概念上 ...
最新文章
- 高级 Linux 命令精通指南
- UTF-8,UTF-16和UTF-32
- nyoj 776 删除元素
- Excel基础操作(五)--图表基础
- 求解带时间窗车辆路径问题的多目标模因算法
- 可怕的乖孩子_小说《可怕的乖孩子》讲了一个什么故事?
- java中为final变量赋值的几种方式
- linux cd 命令案例,15个关于Linux的‘cd’命令的练习例子
- mac版mysql 1290_Mac 终端下mysql load data infile 文件路径 into table 表名称 操作,[Error Code] 1290 - The MyS...
- resin端口错误问题
- 2015-12-01 存储过程
- Thinkpad 笔记本VMware Workstation 安装虚拟机出现“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”解决方法
- 9.2. FreeSWITCH
- 第六届华为创新杯编程大赛第二轮(2014.4.29)
- 局域网计算机不能共享常见问题
- 洛谷p1179数字统计
- 编写程序解决“百钱买百鸡”问题。公鸡五钱一只,母鸡三钱一只,小鸡一钱三只,现有百钱欲买百鸡,共有多少种买法?
- C/C++快速读写磁盘数据的方法
- 在UE5中创建一个受战锤启发的角色
- mvdbos php spider,yemtao
热门文章
- python123下载失败_安装python3.5时出现严重错误无法完成安装,请问这个是什么情况?怎么解决??...
- QQ浏览器下拉词推广是什么?
- 64如何传入后台_如何保证API接口数据安全?
- 中fuse_一种用于将mRNA快速转染到活细胞细胞质中的融合试剂
- python中类的定义_python 类中定义类
- Windows 8 Directx 开发学习笔记(八)要有光
- LTE学习:同步信号
- 组件的data属性 (有别于Vue实例的data属性)
- vs2002 vs2003 可能存在的问题以及解决办法!
- 【原创】Git版本控制器的基本使用