Latest web development tutorials
×

设计模式 หลักสูตร

รูปแบบการออกแบบ รู้เบื้องต้นเกี่ยวกับรูปแบบการออกแบบ โหมดโรงงาน แบบโรงงานย่อ รูปแบบเดี่ยว รุ่นสร้าง รุ่นต้นแบบ อะแดปเตอร์รุ่น สะพานโหมด รูปแบบตัวกรอง โหมดการทำงานร่วมกัน มัณฑนากร รูปแบบซุ้ม ฟลายเวท โหมดพร็อกซี่ ห่วงโซ่ของรูปแบบความรับผิดชอบ โหมดคำสั่ง รูปแบบล่าม โหมดซ้ำแล้วซ้ำอีก รูปแบบที่เป็นสื่อกลาง รูปแบบของที่ระลึก รูปแบบการสังเกตการณ์ รูปแบบของรัฐ null Object Model โหมดกลยุทธ์ โหมดแม่แบบ รูปแบบของผู้เข้าชม MVC โหมด โหมดตัวแทน โหมดนิติบุคคลองค์ประกอบ รูปแบบการเข้าถึงข้อมูลของวัตถุ รูปแบบการควบคุมด้านหน้า intercepting รูปแบบตัวกรอง รูปแบบการบริการผู้แทนจำหน่าย วัตถุ Transfer รุ่น

设计模式其他

ทรัพยากรโหมดออกแบบ

โหมดกลยุทธ์

ในการวางแผนโหมด (รูปแบบกลยุทธ์) พระราชบัญญัติ Class A หรืออัลกอริทึมที่สามารถเปลี่ยนแปลงได้ที่รันไทม์ ประเภทของรูปแบบการออกแบบนี้เป็นรูปแบบพฤติกรรม

ในโหมดกลยุทธ์ของเราจะสร้างวัตถุและความหลากหลายของกลยุทธ์การปรับเปลี่ยนพฤติกรรมเป็นวัตถุนโยบายที่จะเปลี่ยนการแสดงบริบทวัตถุ วัตถุนโยบายที่จะเปลี่ยนแปลงวัตถุบริบทการดำเนินการขั้นตอนวิธี

การแนะนำ

เจตนา: ความหมายของครอบครัวของอัลกอริทึมที่แค็ปซูลแต่ละคนพวกเขาและทำให้พวกเขาใช้แทนกันได้

เป็นหลักในการแก้ปัญหาในกรณีของอัลกอริทึมที่คล้ายกันหลายใช้ถ้า ... อื่นนำความซับซ้อนและยากที่จะรักษา

เมื่อใช้: ระบบมีหลายหลายประเภทและจะแยกพวกเขาเพียง แต่พฤติกรรมของพวกเขาทันที

วิธีการแก้ไข: จะขั้นตอนวิธีการเหล่านี้เป็นแพคเกจระดับแทนที่โดยพลการ

รหัสสำคัญ: การใช้อินเตอร์เฟซเดียวกัน

ตัวอย่างการใช้งาน: 1, ความคิดที่ดีจูกัดเหลียงแต่ละชุดเป็นกลยุทธ์2 วิธีการเดินทางที่จะเดินทางไปเลือกที่จะขี่จักรยานโดยรถยนต์ทางในการเดินทางแต่ละกลยุทธ์ 3, JAVA AWT LayoutManager

ข้อดี: 1, ขั้นตอนวิธีการได้อย่างอิสระสามารถสลับ2 เพื่อหลีกเลี่ยงการใช้หลายเงื่อนไข 3, scalability ดี

ข้อเสีย: 1, กลยุทธ์จะเพิ่มขึ้น2 ชั้นเรียนทุกคนต้องของการเปิดรับนโยบายต่างประเทศ

สถานการณ์การใช้งาน: 1, ถ้ามีระบบที่หลายชั้นเรียนแตกต่างระหว่างพวกเขาเท่านั้นในการทำงานของพวกเขาแล้วใช้รูปแบบกลยุทธ์แบบไดนามิกสามารถเลือกที่จะปล่อยให้การกระทำพฤติกรรมหลายวัตถุ2 ระบบต้องแบบไดนามิกเลือกหนึ่งในหลาย ๆ ขั้นตอนวิธีการ 3. ถ้าวัตถุมีจำนวนมากของพฤติกรรมถ้าที่ไม่ได้เป็นโหมดที่เหมาะสม, การกระทำเหล่านี้มีการใช้หลายเงื่อนไขจะถูกเลือกคำสั่งเพื่อให้บรรลุ

หมายเหตุ: หากนโยบายของระบบมากกว่าสี่ที่คุณจะต้องพิจารณาการใช้โหมดผสมเพื่อแก้ปัญหาของระดับนโยบายการขยายตัว

การสำนึก

เราจะสร้างที่ดีที่กำหนดอินเตอร์เฟซและการดำเนินกิจกรรมของนิติบุคคลอินเตอร์เฟซที่กลยุทธ์ของกลยุทธ์บริบทคือการใช้ระดับนโยบายบางอย่าง

StrategyPatternDemo เรียนสาธิตของเราโดยใช้บริบทบริบทนโยบายและวัตถุที่จะแสดงให้เห็นถึงพฤติกรรมเมื่อมันถูกนำมาใช้ในการกำหนดค่าหรือเปลี่ยนการเปลี่ยนแปลงนโยบาย

รูปแบบกลยุทธ์แผนภาพ UML

ขั้นตอนที่ 1

สร้างอินเตอร์เฟซ

Strategy.java

กลยุทธ์อินเตอร์เฟซที่สาธารณะ {
   int สาธารณะ doOperation (int num1, num2 int);
}

ขั้นตอนที่ 2

สร้างคลาสนิติบุคคลที่ใช้อินเตอร์เฟซ

OperationAdd.java

เรียนสาธารณะ OperationAdd ดำเนินกลยุทธ์ {
   @Override
   int สาธารณะ doOperation (int num1, num2 int) {
      กลับ num1 + num2;
   }
}

OperationSubstract.java

เรียนสาธารณะ OperationSubstract ดำเนินกลยุทธ์ {
   @Override
   int สาธารณะ doOperation (int num1, num2 int) {
      กลับ num1 - num2;
   }
}

OperationMultiply.java

เรียนสาธารณะ OperationMultiply ดำเนินกลยุทธ์ {
   @Override
   int สาธารณะ doOperation (int num1, num2 int) {
      กลับ num1 * num2;
   }
}

ขั้นตอนที่ 3

สร้างคลาสบริบท

Context.java

บริบทระดับสาธารณะ {
   กลยุทธ์กลยุทธ์ส่วนตัว

   บริบทของประชาชน (กลยุทธ์ของ Strategy) {
      this.strategy = กลยุทธ์;
   }

   int สาธารณะ executeStrategy (int num1, num2 int) {
      กลับ strategy.doOperation (num1, num2);
   }
}

ขั้นตอนที่ 4

ใช้ตามบริบทเพื่อดูเมื่อมีการเปลี่ยนแปลงกลยุทธ์ของการเปลี่ยนแปลงพฤติกรรม

StrategyPatternDemo.java

StrategyPatternDemo คลาสที่สาธารณะ {
   ประชาชนเป็นโมฆะคง main (String args []) {
      บริบทบริบท = บริบทใหม่ (ใหม่ OperationAdd ());		
      System.out.println ( "10 + 5 =" + context.executeStrategy (10, 5));

      บริบท = บริบทใหม่ (OperationSubstract ใหม่ ());		
      System.out.println ( "10-5 =" + context.executeStrategy (10, 5));

      บริบท = บริบทใหม่ (OperationMultiply ใหม่ ());		
      System.out.println ( "10 * 5 =" + context.executeStrategy (10, 5));
   }
}

ขั้นตอนที่ 5

ตรวจสอบการส่งออก

10 + 5 = 15
10--5 = 5
10 * 5 = 50