php物件導向之裝飾模式

2021-06-21 21:45:42 字數 916 閱讀 3926

裝飾模式重視**的組合和委託,輕鬆的實現合併物件,在 <

普通的方法是:

//定義基類

abstract class title

//子類實現

class plains extends title

}//如果存在鑽石增加金幣

class diamondplains extends plains

}//如果被汙染則減少金幣

class pulltedplains extends plains

}顯然這段**不夠靈活,原因是我們可以單獨獲取占領後得到的金幣,也可以單獨獲取有鑽石和被汙染的金幣,但是我們呀想得到

被占領後總的金幣卻不行,要單獨寫乙個運算的class計算。這時候可以使用裝飾模式。進行物件的組合

//定義基類

abstract class title

//子類實現

class plains extends title

}//宣告乙個 titledecrator重新定義 diamondplains 和 pulltedplains

abstract class titledecrator

}//如果存在鑽石增加金幣

class diamondplains extends titledecrator

}//如果被汙染則減少金幣

class pulltedplains extends titledecrator

}這樣我們可以計算單獨計算占領後、有鑽石和被汙染的金幣,重要的是可以計算總的金幣數

$obj = new pulltedplains( new diamondplains( new plains() ) );

從最裡面plains()計算占領得金幣數、往外計算diamondplains鑽石加成 最後pulltedplains汙染減分。

物件導向之裝飾器

可以通過 property的getter和setter方法修改物件的屬性值。class person object def init self,name,age self.name name self.age age 訪問器 getter方法 property def name self retur...

PHP 物件導向 設計模式之單例模式

單例模式要解決的問題就是 如何讓這個類只有乙個例項 我們的web應用中,大量使用了資料庫連線,如果反覆建立與資料 庫的連線必然消耗更多的系統資源。我們如何解決這個問題,建立唯一的資料庫連線是必要的方式。我們又如何知道與這個資料庫的連線是否已經建立?還是需要現在 建立?單例模式可以解決這個問題。先假設...

php 設計模式 之 裝飾模式

裝飾模式 顧名思義,裝飾模式是一種對物件資料的多次過濾,就像裝飾一樣,一層層的修飾,獲取滿意的結果。裝飾模式共分為兩個部分 1 裝飾者 在這個介面介面下面的類和方法用以對資料進行修飾 即對資料進行過濾修改 2 被裝飾者 這個就是要被過濾的資料介面物件炒菜之前要對買來的菜進行揀菜,洗菜等操作。這個就類...