設計模式之簡單工廠和單列的區別


 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; //返回該類的變量

}
}

 


     如果覺得有什么不足之處,請各位能夠留下您的觀點,希望我們都能夠學到知識、、、

 

 

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com