asp.net mvc 學習筆記 - 單一實例設計模式


學習之前,先喊一下口號:每天進步一點,生活更好一點

首先聲明一點,我也是新新新手一枚,嶄新的新哦。如果文章有不合理的地方,也請各位博友多多指點,不要亂噴哦

我的文采很低調,低調到語文老師對我的期望是你什么時候能及格啊!!!▄█▀█●給跪了@@@ 所以我的文章都是直奔主題,沒有華麗的裝飾,沒准可以美而言之『通俗易懂』呢ヾ(=゚・゚=)ノ喵♪

好了,可以開始了

我們聲明兩個類  Customer  和  Order

public class Customer
    {
        public string CustomerID { get; set; }
        public string CompanyName { get; set; }
        public string ContactName { get; set; }
        public string ContactTitle { get; set; }
    }
public class Order
    {
        public int OrderID  { get; set; }
        public string  CustomerID { get; set; }
        public int? EmployeeId { get; set; }
        public DateTime? OrderDate { get; set; }
    }

如果是剛開始學習編程,如果要對這兩個類進行操作,就需要建立兩個操作類  CustomerOperation  和 OrderOperation

public class CustomerOperation
    {
        public void Creat(Customer item)
        {
            
        }

        public void Delete(Customer item)
        {
            
        }

        public IEnumerable<Customer> Get()
        {
            
        }

        public void Update(Customer item)
        {
            
        }
    }
public class OrderOperation
    {
        public void Creat(Order item)
        {
            
        }

        public void Delete(Order item)
        {
            
        }

        public IEnumerable<Order> Get()
        {
           
        }

        public void Update(Order item)
        {
            
        }
    }

好了,關於兩個類的CRUD(增查改刪)就寫好了,下面我們就可以使用了

static void Main(string[] args)
        {
            CustomerOperation customer = new CustomerOperation();
            OrderOperation order = new OrderOperation();
            customer.Get();
            order.Get();
            Console.ReadLine();
        }

這樣一來,我們就new了兩個實例,如果我們有一百個類,豈不是要new一百遍!!o(>﹏<)o   

那怎么樣new一個實例,可以同時操作兩個類呢,那還不簡單,我們把兩個操作類,寫到一個里邊

public class Factory
    {
        public void CustomerCreat(Customer item)
        {
            
        }

        public void CustomerDelete(Customer item)
        {
            
        }

        public IEnumerable<Customer> CustomerGet()
        {
           
        }

        public void CustomerUpdate(Customer item)
        {
            
        }
        public void OrderCreat(Order item)
        {
            
        }

        public void OrderDelete(Order item)
        {
            
        }

        public IEnumerable<Order> OrderGet()
        {
            
        }

        public void OrderUpdate(Order item)
        {
            
        }
    }

這時,我們再使用的時候,不就直接實例化一個就可以了

static void Main(string[] args)
        {
            Factory factory = new Factory();
            Factory.CustomerGet();
            Factory.OrderGet();
            Console.ReadLine();
        }

果然聰明,這就基本上可以稱作是單一實例模式了

但是,如果將來有一百個類,你的Factory豈不是要爆掉,那怎么辦呢,我已經修煉了第一層功力,我是這樣做的

原來的兩個操作類不變,在Factory里邊進行實例化

public class Factory
    {
        private CustomerOperation _customerOperation = null;
        private OrderOperation _orderOperation = null;

        public Customer Customers
        {
            get
            {
                if (_customerOperation == null)
                {
                    _customerOperation = new CustomerOperation();
                }

                return this._customerOperation;
            }
        }

        public Order Orders
        {
            get
            {
                if (_orderOperation == null)
                {
                    _orderOperation = new OrderOperation();
                }

                return this._orderOperation;
            }
        }
    }

然后我們再去使用的時候

static void Main(string[] args)
        {            
            Factory factory = new Factory();
            factory .Orders.Get();
            factory .Customers.Get();
            Console.ReadLine();
        }

這樣操作起來是不是就直觀很多了,代碼量也減少了很多,這就是我理解的單一實例模式 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM