額外定義乙個物件來表示null
(1)它可以加強系統的穩固性,能有有效地防止空指標報錯對整個系統的影響,使系統更加穩定。
(2)它能夠實現對空物件情況的定製化的控制,能夠掌握處理空物件的主動權。
(3)它並不依靠client來保證整個系統的穩定執行。
(4)它通過isnull對==null的替換,顯得更加優雅,更加易懂。
import abc
class color:
def isnull():
return false
@abc.abstractmethod
def show(self):
pass
class red(color):
def show(self):
print("我很紅")
class yellow(color):
def show(self):
print("我很黃")
class colornull(color):
def isnull():
return true
def show(self):
print("無此型別")
class colo***ctory():
def getcolor(self,strcolor):
if(strcolor=="red"):
return red()
elif(strcolor=="yellow"):
return yellow()
else:
#return none #這樣返回的話,下面的呼叫就會出錯
return colornull()
if(__name__=="__main__"):
colo***ctory=colo***ctory()
colorobj1=colo***ctory.getcolor("red")
colorobj2=colo***ctory.getcolor("yellow")
colorobj3=colo***ctory.getcolor("black")
colorobj1.show()
colorobj2.show()
colorobj3.show()
空物件模式
在空物件模式 null object pattern 中,乙個空物件取代null物件例項的檢查。null物件不是檢查空值,而是反應乙個不做任何動作的關係。這樣的null物件也可以在資料不可用的時候提供預設的行為。在空物件模式中,我們建立乙個指定各種要執行的操作的抽象類和擴充套件該類的實體類,還建立乙...
空物件模式
在空物件模式 null object pattern 中,乙個空物件取代 null 物件例項的檢查。null 物件不是檢查空值,而是反應乙個不做任何動作的關係。這樣的 null 物件也可以在資料不可用的時候提供預設的行為。在空物件模式中,我們建立乙個指定各種要執行的操作的抽象類和擴充套件該類的實體類...
設計模式 空物件模式
1.什麼是空物件模式 在空物件模式 null object pattern 中,乙個空物件取代 null 物件例項的檢查。null 物件不是檢查空值,而是反應乙個不做任何動作的關係。這樣的 null 物件也可以在資料不可用的時候提供預設的行為。在空物件模式中,我們建立乙個指定各種要執行的操作的抽象類...