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# 之抽象工厂模式的更多相关文章

  1. PHP设计模式(三)抽象工厂模式(Abstract Factory For PHP)

    一.什么是抽象工厂模式 抽象工厂模式的用意为:给客户端提供一个接口,可以创建多个产品族中的产品对象 ,而且使用抽象工厂模式还要满足以下条件: 系统中有多个产品族,而系统一次只可能消费其中一族产品. 同 ...

  2. 面向对象设计模式纵横谈:Abstract Factory 抽象工厂模式(笔记记录)

         今天是设计模式的第二讲,抽象工厂的设计模式,我们还是延续老办法,一步一步的.演变的来讲,先来看看一个对象创建的问题. 1.如何创建一个对象 常规的对象创建方法: 这样的创建对象没有任何问题, ...

  3. Objective-C 工厂模式(下) -- 抽象工厂模式

    相比简单工厂模式, 只有一个工厂 能生产的手机也是固定的 抽象工厂模式类似于有很多家工厂, 当用户要买什么手机就创建对应的工厂去生产 比如用户要买iPhone就创建一个Apple工厂来生产手机, 要买 ...

  4. Net设计模式实例之抽象工厂模式(Abstract Factory Pattern)

    一.抽象工厂模式简介(Bref Introduction) 抽象工厂模式(Abstract Factory Pattern),提供一个创建一系列相关或者相互依赖对象的接口,而无需制定他们的具体类.优点 ...

  5. .NET设计模式(2):1.2 抽象工厂模式(Abstract Factory)

    概述 抽象工厂模式(Abstract Factory)是所有形态的工厂模式中最为抽象和最具一般性的一种形态.抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式.抽象工厂模式可以向客户端提供一个接口 ...

  6. 设计模式(四)抽象工厂模式(Abstract Factory Pattern)

    一.引言 在上一专题中介绍了工厂方法模式,工厂方法模式是为了克服简单工厂模式的缺点而设计出来的,简单工厂模式的工厂类随着产品类的增加需要增加额外的代码,而工厂方法模式每个具体工厂类只完成单个实例的创建 ...

  7. php实现设计模式之 抽象工厂模式

    <?php /*抽象工厂模式:提供一个创建一系统相关或相互依赖对象的接口,而无需指定它们具体的类 * 创建型模式 */ //抽象小米工厂,能制造小米一,小米二 abstract class mi ...

  8. 设计模式(3)--抽象工厂模式(Absrtact Factory Pattern)

    定义 抽象工厂模式的实质就是提供接口来创建一系列相关或独立的对象而不指定这些对象的具体类. 理解 在软件系统中,经常面临着"一系列相互依赖的对象"的创建工作:同时由于需求的变化,往 ...

  9. Java设计模式(三) 抽象工厂模式

    原创文章,同步发自作者个人博客,转载请注明出处 http://www.jasongj.com/design_pattern/abstract_factory/ 抽象工厂模式解决的问题 上文<工厂 ...

  10. 抽象工厂模式 shiyanlou

    二.什么是 抽象工厂模式 抽象工厂模式(Abstract Factory Pattern)是一种软件开发设计模式.抽象工厂模式提供了一种方式,可以将一组具有同一主题的单独的工厂封装起来.如果比较抽象工 ...

随机推荐

  1. <s:select>中list获取action中数据

    jsp: <s:select name="cate1.id" list="cate1list" listKey="id" listVa ...

  2. JAX-WS(三)构建简单webservice部署到tomcat上

    前言: 虽然构建本地的jax-ws的webservice很简单,但要部署到tomcat上要绕过点弯. tomcat本身和jdk都没有jaw-ws的API,所以部署的时候需要额外做点事情,有两种选择 1 ...

  3. IDEA中 @override报错的处理步骤

    今天用IDEA导入一个java工程时,JDK1.8版本,碰上一个问题,代码中所有@override处标红,并提示:@override不支持对接口的实现. 网上百度了一下发现, 原因是引用JDK5版本中 ...

  4. Iterator和ListIterator主要区别(转)

    Iterator和ListIterator主要区别有: 一.ListIterator有add()方法,可以向List中添加对象,而Iterator不能. 二.ListIterator和Iterator ...

  5. Effective C++ 2.构造 析构 赋值运算

    //条款07:为多态基类声明virtual析构函数 // 1.若基类的析构函数不定义为虚函数,由于基类的指针或引用可以指向派生类的对象,则在删除基类对象的时候可能会出错,导致破坏数据结构. // 2. ...

  6. hdu1247(字典树+枚举)

    Hat's Words(hdu1247) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...

  7. escape()、encodeURI()、encodeURIComponent() difference

    escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码.所有的空格符.标点符号.特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编 ...

  8. 【你吐吧c#每日学习】10.30 C#Nullable Types

    分两种类型,value type and reference type. By default, value type owns a default value. For integer, the d ...

  9. demo06

    city_data.xml <?xml version="1.0" encoding="utf-8"?> <resources> < ...

  10. 把所有特权给root '%'所有IP

    grant all privileges on *.* to root@'%' identified by 'root'; --把所有特权给root '%'所有IP