基於python3.6實現
最近開始看《大話設計模式》,由於平常用python,所以把**改寫了一下,也是心血來潮,不知道能不能更下去,慢慢來吧。
# 簡單工廠模式
class
operation
(object):
pass
class
opadd
(operation)
:def
getresult
(self)
:return self.numa + self.numb
class
opsub
(operation)
:def
getresult
(self)
:return self.numa - self.numb
class
opmul
(operation)
:def
getresult
(self)
:return self.numa * self.numb
class
opdiv
(operation)
:def
getresult
(self)
:try
: result = self.numa / self.numb
return result
except
:print
("valueerror: divided by zero."
)# raise valueerror("divided by zero.")
class
opundef
(operation)
:def
getresult
(self)
:print
("operationerror: undefined operation."
)# raise valueerror("undefined operation.")
class
operationfactory
(object):
def__init__
(self)
: self.operation =
self.operation[
"+"]
= opadd();
self.operation[
"-"]
= opsub();
self.operation[
"*"]
= opmul();
self.operation[
"/"]
= opdiv();
defcreateoperation
(self, op)
:if op in self.operation:
opp = self.operation[op]
else
: opp = opundef(
)return opp
if __name__ ==
"__main__"
: ope =
input
("operator: "
) a =
input
("numbera: "
) b =
input
("numberb: "
) oper = operationfactory(
).createoperation(ope)
oper.numa =
int(a)
oper.numb =
int(b)
print
(oper.getresult(
))
大話設計模式Python實現 策略模式
策略模式 strategy pattern 它定義了演算法家族,分別封裝起來,讓他們之間可以相互替換,此模式讓演算法的變化,不會影響到使用演算法的客戶.下面是乙個商場活動的實現 1 usr bin env python2 coding utf 8 34 author andy 5 6 大話設計模式 ...
大話設計模式Python實現 介面卡模式
介面卡模式 adapter pattern 將乙個類的介面轉換成為客戶希望的另外乙個介面.下面是乙個介面卡模式的demo 1 usr bin env python2 coding utf 8 34 author andy 5 6 大話設計模式 7設計模式 介面卡模式 8介面卡模式 adapter p...
大話設計模式策略模式c 實現
其他二十三種設計模式 include using namespace std 策略模式 strategy 定義演算法家族,分別封裝起來,讓演算法之間可以相互替換,且不會影響到使用演算法的client客戶 抽象收費策略 class cashsuper 正常收費類 class cashnormal pu...