工廠方法模式
定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類。
工廠方法模式實現時,客戶端要決定例項化哪乙個工廠來實現運算類,選擇判斷的問題還是存在的,也就是說,工廠方法爸簡單工廠的內部邏輯判斷轉移到了客戶端**來進行,你想要增加功能,本來是改工廠類的,而現在是修改客戶端。
入門案例
package com.test.fac01;
public class user
public user(integer uid, string uname)
public integer getuid()
public void setuid(integer uid)
public string getuname()
public void setuname(string uname)
@override
public string tostring() ';
}}
package com.test.fac01;
public class people
public people(string pname, integer page)
public string getpname()
public void setpname(string pname)
public integer getpage()
public void setpage(integer page)
@override
public string tostring() ';
}}
package com.test.fac01;
public inte***ce iuser
package com.test.fac01;
public inte***ce ipeople
package com.test.fac01;
public class asessserve***ctory implements ifactory
@override
public ipeople createpeople()
}
package com.test.fac01;
public class sqlserve***ctory implements ifactory
@override
public ipeople createpeople()
}
package com.test.fac01;
public class sqlserverpeople implements ipeople
@override
public void getbypid(integer pid)
}
package com.test.fac01;
public class sqlserveruser implements iuser
/*** todo 查詢使用者
*/@override
public void getbyuid(integer uid)
}
package com.test.fac01;
public class asessserverpeople implements ipeople
@override
public void getbypid(integer pid)
}
package com.test.fac01;
public class asessserveruser implements iuser
@override
public void getbyuid(integer uid)
}
package com.test.fac01;
public class maintest
}
工廠模式之工廠方法案例
工廠方法模式 首先建立控制台應用程式專案 1.建立abstractproduct抽象產品類。在該類中定義抽象產品方法。public abstract class iabstractproduct 2.建立producta productb 兩個具體產品類。請根據工廠方法模式的內容,在兩個具體產品類中...
工廠方法模式 工廠方法模式
工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...
工廠方法模式 工廠方法模式 二
工廠方法模式是對簡單工廠的進一步抽象和封裝,需要新的類物件時不需要對既有工廠類進行修改,而是增加新的工廠類。工程類可以使用模版進一步封裝,由編譯器來生成 從而減少 編寫工作量。工廠方法的 c 實現01part產品抽象基類class animal virtual void show 0 02part產...