PHP的個人整合應用分享
Posted by ayuayu on 2014/11/14
感覺抱怨文發有點多,發一篇來洗掉(雖然沒什麼意義)
以下請勿沒看狀況照搬,也請自己先弄懂並確認運作流程
假設有狀況需要執行A方針的流程1和流程2,但其他狀況需要執行B方針的流程1和C方針的流程2
神奇的PHP可以把他整理得很乾淨
class A{
function magic(){
doSomethingA;
}
function magic2(){
doSomethingB;
}
}
class B{
function magic(){
doSomethingC;
}
}
class C{
function magic2(){
doSomethingD;
}
}
很直觀的寫法會變這樣
if (condition) {
$dynamicClass = new A();
$dynamicClass->magic();
$dynamicClass->magic2();
} else {
$dynamicClass = new B();
$dynamicClass->magic();
$dynamicClass2 = new C();
$dynamicClass2->magic2();
}
但是其實可以整理成這樣
$dynamicClass = new A();
$dynamicClass->magic();
$dynamicClass->magic2();
} else {
$dynamicClass = new B();
$dynamicClass->magic();
$dynamicClass2 = new C();
$dynamicClass2->magic2();
}
但是其實可以整理成這樣
$dynamicClass = new A();
$dynamicClass2 = $dynamicClass;
} else {
$dynamicClass = new B();
$dynamicClass2 = new C();
}
$dynamicClass->magic();
$dynamicClass2->magic2();
好處的話,當流程不只兩個,而是十幾二十個的時候,差在哪顯而易見
但是這也考驗著,有沒有辦法整合自己架構,釐清整體流程
因為在這裡雖然很明確的寫出magic和magic2作為方便理解,在現實狀況卻不一定是能很輕鬆分出來的
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言