c# 之抽象工厂模式
Email整体项目
Email类 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Service; namespace Email
{
public class email:Ifiles
{
public void GetEmail()
{
Console.WriteLine("发送邮件了");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Service;
namespace Email
{
public class EmailFactory:IfileFactory
{
public Ifiles Create()
{
return new email();
}
} //public class EmailFactory : PhoneFactory
//{
// public Phone Create()
// {
// return new Phones();
// }
//}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Service; namespace Email
{
//public class Phones:Phone
// {
// public void GetPhone()
// {
// Console.WriteLine("发送短信了");
// }
// }
}
引用其他类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace Service
{
public interface Ifiles
{
void GetEmail();
} //public interface Phone
//{
// void GetPhone();
//}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace Service
{
public interface IfileFactory
{
Ifiles Create();
} //public interface PhoneFactory
//{
// Phone Create();
//}
}
抽象
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Service;
using System.Reflection; namespace Email
{
class AbstractFactory
{ public Static IfileFactory GetInstace()
{
string names= System.Configuration.ConfigurationManager.AppSettings[""].ToString(); return (Service.IfileFactory)Assembly.Load(names).CreateInstance(names + ".EmailFactory");
}
}
}
使用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Service; namespace Email
{
class Program
{
static void Main(string[] args)
{
Ifiles em = (new EmailFactory()).Create();
em.GetEmail();
Console.ReadKey();
}
}
}
c# 之抽象工厂模式的更多相关文章
- PHP设计模式(三)抽象工厂模式(Abstract Factory For PHP)
一.什么是抽象工厂模式 抽象工厂模式的用意为:给客户端提供一个接口,可以创建多个产品族中的产品对象 ,而且使用抽象工厂模式还要满足以下条件: 系统中有多个产品族,而系统一次只可能消费其中一族产品. 同 ...
- 面向对象设计模式纵横谈:Abstract Factory 抽象工厂模式(笔记记录)
今天是设计模式的第二讲,抽象工厂的设计模式,我们还是延续老办法,一步一步的.演变的来讲,先来看看一个对象创建的问题. 1.如何创建一个对象 常规的对象创建方法: 这样的创建对象没有任何问题, ...
- Objective-C 工厂模式(下) -- 抽象工厂模式
相比简单工厂模式, 只有一个工厂 能生产的手机也是固定的 抽象工厂模式类似于有很多家工厂, 当用户要买什么手机就创建对应的工厂去生产 比如用户要买iPhone就创建一个Apple工厂来生产手机, 要买 ...
- Net设计模式实例之抽象工厂模式(Abstract Factory Pattern)
一.抽象工厂模式简介(Bref Introduction) 抽象工厂模式(Abstract Factory Pattern),提供一个创建一系列相关或者相互依赖对象的接口,而无需制定他们的具体类.优点 ...
- .NET设计模式(2):1.2 抽象工厂模式(Abstract Factory)
概述 抽象工厂模式(Abstract Factory)是所有形态的工厂模式中最为抽象和最具一般性的一种形态.抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式.抽象工厂模式可以向客户端提供一个接口 ...
- 设计模式(四)抽象工厂模式(Abstract Factory Pattern)
一.引言 在上一专题中介绍了工厂方法模式,工厂方法模式是为了克服简单工厂模式的缺点而设计出来的,简单工厂模式的工厂类随着产品类的增加需要增加额外的代码,而工厂方法模式每个具体工厂类只完成单个实例的创建 ...
- php实现设计模式之 抽象工厂模式
<?php /*抽象工厂模式:提供一个创建一系统相关或相互依赖对象的接口,而无需指定它们具体的类 * 创建型模式 */ //抽象小米工厂,能制造小米一,小米二 abstract class mi ...
- 设计模式(3)--抽象工厂模式(Absrtact Factory Pattern)
定义 抽象工厂模式的实质就是提供接口来创建一系列相关或独立的对象而不指定这些对象的具体类. 理解 在软件系统中,经常面临着"一系列相互依赖的对象"的创建工作:同时由于需求的变化,往 ...
- Java设计模式(三) 抽象工厂模式
原创文章,同步发自作者个人博客,转载请注明出处 http://www.jasongj.com/design_pattern/abstract_factory/ 抽象工厂模式解决的问题 上文<工厂 ...
- 抽象工厂模式 shiyanlou
二.什么是 抽象工厂模式 抽象工厂模式(Abstract Factory Pattern)是一种软件开发设计模式.抽象工厂模式提供了一种方式,可以将一组具有同一主题的单独的工厂封装起来.如果比较抽象工 ...
随机推荐
- 脚本:SQLServer 2008 生成某数据库中的所有索引创建脚本
--1. get all indexes from current db, place in temp table select schemaName = s.name, tablename = ob ...
- Java异步IO/NIO
- linux 命令之 insmod
man insmod: INSMOD(8) insmod INSMOD(8) NAME insmod - Simple program to insert a module into the Linu ...
- 、JAVA-异常
异常 1.种类(error 系统异常,无法处理)(exception 程序异常,可以处理) 1.算数异常 2.空指针异常 原因:对象没有实例化就调用他的实例方法,会造成空指针异常 2.常见异常 1.R ...
- hunnu 修路
ing········ 这题我一眼就想到二分修路的长度 可是还有一个问题,有个费用,如果没有的话就所有的边都连起来判断能否二分到最小可行的 可是,有费用... 怎么做呢... ... 有了费用后,就不 ...
- C#: XML Serializer
这里主要讲如何将一个class序列化为一个string.如下一个class: public class OrderedItem { private string itemName; private s ...
- 当执行php脚本时用户关闭浏览器会发生什么?
2008年8月16日 1,152 views 发表评论 阅读评论 如果一段php脚本执行插入数据到mysql的操作. 一般情况下,由于php脚本在服务器上执行,此时用户虽然关闭了浏览器,但是服务器端的 ...
- js获取url的参数值
var match = new RegExp('[?&]voucherSn=([^&]*)').exec("http://m.v3beta.tootoo.cn/index.p ...
- Linux mysql 主从复制
主:192.168.246.130 从:192.168.246.131 主配制:my.conf server_id log-bin=mysql-bin binlog-format=mixed 从配制: ...
- Logic BIST
Logic BIST is crucial for many applications, in particular for life-critical and mission-critical ap ...