แบบจำลองผู้สร้างมีวัตถุประสงค์เพื่อสร้างวัตถุที่ซับซ้อน ตัวอย่างเช่นผลิตภัณฑ์ประกอบด้วยหลายส่วนและแต่ละส่วนสามารถผลิตแยกต่างหาก ในเวลานี้โมเดลผู้สร้างสามารถใช้ในการสร้างแต่ละส่วนของผลิตภัณฑ์โดย Builder และจากนั้นผู้อำนวยการจะเสร็จสิ้นการชุมนุมของผลิตภัณฑ์ขั้นสุดท้าย
คุณสมบัติ:
1. แผนกแรงงานมีความชัดเจนและองค์กรและโครงสร้างถูกแยกออกจากกันซึ่งสามารถควบคุมการผลิตผลิตภัณฑ์ได้ดีขึ้น
2. ง่ายต่อการขยาย เมื่อมีความต้องการใหม่เพียงแค่ใช้ข้อแก้ตัวของผู้สร้าง
แอปพลิเคชันในการพัฒนาระดับองค์กรและเฟรมเวิร์กที่ใช้กันทั่วไป: JMail
องค์ประกอบ: หมวดหมู่ผลิตภัณฑ์ผู้สร้างบทคัดย่อผู้สร้างผู้อำนวยการ
หมวดหมู่ผลิตภัณฑ์:
ผลิตภัณฑ์ระดับสาธารณะ {Private String parta; // ส่วนหนึ่งของผลิตภัณฑ์อาจสอดคล้องกับ Partb Private String คลาสในการพัฒนาจริง; // ส่วนหนึ่งของผลิตภัณฑ์อาจสอดคล้องกับ Partc Private String ในชั้นเรียนในการพัฒนาจริง; // ส่วนหนึ่งของผลิตภัณฑ์อาจสอดคล้องกับสตริงส่วนตัวคลาสในการพัฒนาจริงผู้สร้างบทคัดย่อ:
// มันยังสามารถเป็นตัวสร้างอินเตอร์เฟสสาธารณะคลาสนามธรรม {โมฆะสาธารณะ setparta (สตริง parta); โมฆะสาธารณะ setPartB (สตริง PartB); โมฆะสาธารณะ setPartc (สตริง Partc);}ระดับการใช้งาน Builder:
BuilDerImpl ระดับสาธารณะใช้ Builder {ผลิตภัณฑ์ผลิตภัณฑ์ส่วนตัว; Public BuilDerImpl () {product = ผลิตภัณฑ์ใหม่ (); } โมฆะสาธารณะ builderparta () {string parta = สตริงใหม่ (); // จำลองส่วนหนึ่งของวิธีโรงงานเพื่อผลิต product.setparta (parta); } โมฆะสาธารณะ builderPartb () {string partb = สตริงใหม่ (); // จำลองส่วนหนึ่งของวิธีการโรงงานเพื่อผลิต product.setPartB (partb); } โมฆะสาธารณะ setPartc () {String partc = new String (); // จำลองส่วนหนึ่งของการผลิตผลิตภัณฑ์ในวิธีการโรงงาน Product.setPartc (Partc); } ผลิตภัณฑ์สาธารณะ getProduct () {return this.product; -หมวดผู้อำนวยการ:
ผู้อำนวยการชั้นเรียนสาธารณะ {ผู้สร้างส่วนตัว b; ผู้อำนวยการสาธารณะ (Builder newb) {this.b = newb; } โมฆะสาธารณะ createBuilder (builder b) {this.b = b; } ผลิตภัณฑ์สาธารณะ ConstructProduct () {B.BuilderParta (); b.builderpartb (); b.builderpartc (); -คลาสทดสอบ:
การสาธิตคลาสสาธารณะ {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {builder b = ใหม่ builderimpl (); ผู้อำนวยการ D = ผู้อำนวยการคนใหม่ (); D.CreateBuilder (B); ผลิตภัณฑ์ P = C.ConstructProduct (); -จากตัวอย่างข้างต้นมันไม่ยากที่จะพบว่าถ้าเราใช้คลาสผู้อำนวยการมันเป็นไปได้ทั้งหมดที่จะรวบรวมผลิตภัณฑ์อื่นที่แตกต่างกันเพราะผู้อำนวยการคลาสควบคุมการชุมนุมของผลิตภัณฑ์ ในทำนองเดียวกันหากเราทำการตรวจสอบระดับการก่อสร้างที่เป็นนามธรรมอีกครั้งผลิตภัณฑ์ที่แตกต่างอย่างสิ้นเชิงก็อาจปรากฏขึ้น ดังนั้นเราจึงสามารถพบได้ว่าโมเดลผู้สร้างเป็นนามธรรมและมุ่งเน้นกระบวนการมากขึ้น
เมื่อเทียบกับโมเดลโรงงานนามธรรมมันไม่ยากที่จะพบว่าทั้งสองมีความคล้ายคลึงกันอย่างน่าประหลาดใจ แต่ทำไมถึงมีแบบจำลองการออกแบบที่แตกต่างกันสองแบบ? ในความเป็นจริงการมุ่งเน้นคือความซับซ้อนและสิ่งที่เป็นนามธรรมของผลิตภัณฑ์ โมเดลผู้สร้างเป็นนามธรรมและซับซ้อนกว่าแบบจำลองโรงงานนามธรรม กล่าวคือผลิตภัณฑ์ที่เกี่ยวข้องกับโมเดลผู้สร้างมีความซับซ้อนมากกว่าผลิตภัณฑ์ที่เกี่ยวข้องกับโรงงานนามธรรมและในเวลาเดียวกันกระบวนการผลิตผลิตภัณฑ์นั้นยาวนานและเป็นนามธรรมมากขึ้น
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น