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>
  • 相关阅读:
    机器学习(3)- 学习建议<误差出现如何解决?>
    机器学习(2)- 神经网络
    推荐系统(2)
    机器学习(1)- 概述&线性回归&逻辑回归&正则化
    朴素贝叶斯法(naive Bayes)
    约瑟夫环(java)
    AJAX请求详解 同步异步 GET和POST
    AJAX
    JspWriter与PrintWriter(转)
    Jsunit
  • 原文地址:https://www.cnblogs.com/jzblogs/p/4207575.html
Copyright © 2011-2022 走看看