1.什麼是設計模式 * 解析:針對特定問題而提出特定的解決方案 簡單工廠不算23種設計模式中的一種,--只是一個抽象工廠 2.什麼簡單工廠呢? 01.簡單工廠的概念 一個普通的類,在該類定義一個方法;該方法是用靜態(static)修飾,返回值為父類的類型,通常方法會帶一個參數。 02.代碼舉例 pu
1.什麼是設計模式
* 解析:針對特定問題而提出特定的解決方案
簡單工廠不算23種設計模式中的一種,--只是一個抽象工廠
2.什麼簡單工廠呢?
01.簡單工廠的概念
一個普通的類,在該類定義一個方法;該方法是用靜態(static)修飾,返回值為父類的類型,通常方法會帶一個參數。
02.代碼舉例
public class PizzaFactory { //定義一個 static 並且返回值類型是 父類類型的方法 攜帶一個參數 public static Pizza getInstance(string type) { //01.定義一個父類類型的容器 ,用於保存對應的子類對象 Pizza pizza=null; switch (type) { case "乳酪比薩": pizza = new CheesePizza(); break; case "培根比薩": pizza = new PGPizza(); break; } return pizza; } }
03.父類與子類的代碼
--父類 public abstract class Pizza //abstract關鍵字來修飾即為抽象類 { public abstract string Info();//抽象方法--留給子類來重寫 } --子類 public class PGPizza:Pizza //繼承 { public override string Info() //重寫了方法 { return "您好,培根披薩訂購完成!"; } --另一個子類 public class CheesePizza:Pizza { public override string Info() { return "您好,乳酪比薩成功訂購"; }
3.單例
01.簡單描述
跟簡單工廠相似,只不過是單例只能想記憶體索要一塊空間,相當於只能new一次。
在一個普通類中,先給該類定義一個靜態(static)的變數,然後將該類的無參構造的修飾符共有的(public)改為私有的(private),
再定義一個靜態(static)的方法,返回值類型為該類,最後判斷該類是否有new過,即向記憶體索要空間,如果沒有就new,否則就return
會該類的變數即可。
02.代碼如下所示
public class Person { public static Person p; //靜態變數 private Person() //私有的構造函數 { } public static Person getInstance() //靜態方法 返回值類型Person { if (p==null) //判斷 { p=new Person(); //索要空間 } return p; //返回該類的變數 } }
如果覺得有什麼不足之處,請各位能夠留下您的觀點,希望我們都能夠學到知識、、、