zoukankan      html  css  js  c++  java
  • 简单工厂模式-2015-1-7

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                ACompany item = CompanyFactory.CreateCompany(EnumCompany.Car);
                if (item == null)
                    Console.WriteLine("null");
                else
                {
                    item.Open();
                    item.Close();
                }
    
                Console.WriteLine("****************************************");
    
                item = CompanyFactory.CreateCompany(EnumCompany.Car);
                if (item == null)
                    Console.WriteLine("null");
                else
                {
                    item.Open();
                    item.Close();
                }
               
                Console.ReadKey();
            }
        }
    
        enum EnumCompany
        {
            Car=0,
            Boat=1,
            Shoat=2,
            Food=3,
        }
        class CompanyFactory
        {
            public static ACompany CreateCompany(EnumCompany item)
            {
                ACompany company = null;
                switch (item)
                {
                    case EnumCompany.Car: company= new Car(); break;
                    case EnumCompany.Boat: company= new Boat(); break;
                }
                return company;
            }
        }
    
        interface ICompany
        {
            bool Open();
            bool Close();
        }
    
        abstract class ACompany : ICompany
        {
            public int Count = 0;
            public static int Flag = 0;
            public abstract bool Open();
    
            public abstract bool Close();
    
            public void Test()
            {
    
            }
    
            public abstract void Method();
        }
    
        class Car:ACompany
        {
            public override void Method()
            {
                Console.WriteLine(this.ToString());
                
            }
    
            public override bool Open()
            {
                Console.WriteLine(this.ToString());
                
                Count++;
                Flag++;
                Console.WriteLine("Count:{0}", Count);
                Console.WriteLine("Flag:{0}", Flag);
    
                return true;
            }
    
            public override bool Close()
            {
                Console.WriteLine(this.ToString());
                Count++;
                Flag++;
                Console.WriteLine("Count:{0}", Count);
                Console.WriteLine("Flag:{0}", Flag);
    
                return true;
            }
        }
    
        class Boat : ACompany
        {
            public override bool Open()
            {
                Console.WriteLine(this.ToString());
                return true;
            }
    
            public override bool Close()
            {
                Console.WriteLine(this.ToString());
                return true;
            }
    
            public override void Method()
            {
                Console.WriteLine(this.ToString());
            }
        }
    
        
    }
    

      

     /*
                 * 输出结果
                ConsoleApplication1.Car
                Count:1
                Flag:1
                ConsoleApplication1.Car
                Count:2
                Flag:2
                ****************************************
                ConsoleApplication1.Car
                Count:1
                Flag:3
                ConsoleApplication1.Car
                Count:2
                Flag:4
                 * 
                 */
    

      

    <div>这篇文章简单罗列了在项目开发中用到的类、接口、抽象类,三者组合在一起构成了简单的工厂模式</div>
  • 相关阅读:
    转发自lealii 的博客,如有侵权请通知删除
    SQL注入详解-转发
    IT实用技术资源整理
    JMeter-接口自动化之正则表达式关联
    转发自_destiny如有侵权请联系删除
    二元数组的最小值最大和
    连续区间和大于等于某个数(弱化版)
    独一无二的最小生成树
    牛客小白月赛19 弱版 C
    牛客 安徽大学新生赛 G
  • 原文地址:https://www.cnblogs.com/jzblogs/p/4207575.html
Copyright © 2011-2022 走看看