色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 模版模式

劉柏宏1年前8瀏覽0評論

Python中的模版模式就是基于繼承的一種設計模式,在大型應用程序開發(fā)中得到廣泛應用。它可以定義一個算法的骨架,并允許子類為一個或多個步驟提供其實現(xiàn)方式。

class AbstractClass:
def template_method(self):
self.base_operation_1()
self.required_operation_1()
self.base_operation_2()
self.hook_1()
self.required_operation_2()
self.base_operation_3()
self.hook_2()
def base_operation_1(self):
print("AbstractClass says: I am doing the bulk of the work here")
def base_operation_2(self):
print("AbstractClass says: But I let subclasses override some operations")
def base_operation_3(self):
print("AbstractClass says: But I am doing the bulk of the work here anyway")
def required_operation_1(self):
pass
def required_operation_2(self):
pass
def hook_1(self):
pass
def hook_2(self):
pass
class ConcreteClass1(AbstractClass):
def required_operation_1(self):
print("ConcreteClass1 says: Implemented Operation1")
def required_operation_2(self):
print("ConcreteClass1 says: Implemented Operation2")
class ConcreteClass2(AbstractClass):
def required_operation_1(self):
print("ConcreteClass2 says: Implemented Operation1")
def required_operation_2(self):
print("ConcreteClass2 says: Implemented Operation2")
def hook_1(self):
print("ConcreteClass2 says: Overridden Hook1")

上述示例顯示了一個通用抽象類,其中有一些抽象方法,這些方法必須由子類來實現(xiàn)。ConcreteClass1和ConcreteClass2是具體類,它們繼承自AbstractClass并實現(xiàn)其抽象方法。

在該示例中,AbstractClass擁有的template_method方法是算法骨架,它會按照固定的順序調(diào)用方法,同時允許子類根據(jù)需要重寫其中的一些操作。這種方法允許在程序設計中重用代碼,并遵循開放/關閉原則。

Python中的模版模式簡化了代碼的開發(fā),并在大型應用程序開發(fā)中提供了有用的抽象和重用的機制。