• 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();
            }
        }
    }
    

      

  • 相关阅读:
    CSS的三种定位方式介绍(转载)
    CSS背景颜色透明
    去除网页滚动条的方法
    es6
    Android复习
    caculater
    字符流
    字节流
    File类
    泛型继承
  • 原文地址:https://www.cnblogs.com/mengluo/p/5735433.html
Copyright © 2020-2023  润新知