Latest web development tutorials
×

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

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

设计模式其他

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

โหมดคำสั่ง

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

การแนะนำ

เจตนา: ห่อหุ้มคำขอเป็นวัตถุเพื่อให้คุณสามารถใช้การร้องขอที่แตกต่างเพื่อ parameterize ลูกค้า

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

เมื่อจะใช้: ในบางกรณีเช่นพฤติกรรมของ "บันทึกยกเลิก / ทำซ้ำการทำธุรกรรม" และการรักษาอื่น ๆ การเปลี่ยนแปลงดังกล่าวไม่สามารถต้านทานการมีเพศสัมพันธ์แน่นไม่เหมาะสมในกรณีนี้ว่า "การดำเนินการขอ" และ "พฤติกรรมผู้ดำเนิน" จะ decoupling? ทำหน้าที่เป็นชุดของวัตถุนามธรรม, coupling หลวมสามารถทำได้ระหว่างคนทั้งสอง

วิธีการแก้ไข: เรียกใช้โดยผู้รับจะเรียกโทรในการสั่งซื้อ: รับโทร→→คำสั่ง

รหัสสำคัญ: ความหมายของสามบทบาท: 1 ที่ได้รับการดำเนินการคำสั่งจริงวัตถุที่ 2, 3 คำสั่งวัตถุทรงใช้รายการคำสั่ง

ตัวอย่างการใช้งาน: 1 เสาหลักควบคุม ActionServlet ในการดำเนินการเป็นเพียงหนึ่งเทียบเท่าของ Invoker ในขณะที่ชั้นรูปแบบการเรียนจะมีการใช้งานที่แตกต่างกันมีการเรียนแบบที่แตกต่างเทียบเท่าของคำสั่งที่เป็นรูปธรรม

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

ข้อเสีย: โหมดคำสั่งอาจก่อให้เกิดระบบบางรายที่มีระดับคำสั่งที่เฉพาะเจาะจงมากเกินไป

สถานการณ์การใช้งาน: คำสั่งที่ท้องถิ่นสามารถใช้โหมดคำสั่งเช่น: 1, GUI แต่ละปุ่มเป็นคำสั่ง2 จำลอง CMD

หมายเหตุ: ระบบจะต้องมีการสนับสนุนยกเลิกคำสั่ง (undo) และการดำเนินการกู้คืน (ทำซ้ำ) การดำเนินงานคุณสามารถพิจารณาใช้โหมดคำสั่งให้ดูที่โหมดคำสั่งขยาย

การสำนึก

ครั้งแรกที่เราได้สร้างเป็นอินเตอร์เฟซคำสั่งการสั่งซื้อแล้วสร้างชั้นคำขอแจ้งเอนทิตีและคำสั่งชั้นเรียนBuyStockSellStockสั่งดำเนินการติดต่อก็จะดำเนินการประมวลผลคำสั่งที่เกิดขึ้นจริงสร้างขึ้นเพื่อเป็นนายหน้าชั้นวัตถุโทรซึ่งสามารถยอมรับคำสั่งและคำสั่งซื้อ

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

โหมดคำสั่งแผนภาพ UML

ขั้นตอนที่ 1

อินเตอร์เฟซที่สร้างคำสั่ง

Order.java

สั่งซื้ออินเตอร์เฟซที่สาธารณะ {
   เป็นโมฆะรัน ();
}

ขั้นตอนที่ 2

สร้างคลาสการร้องขอ

Stock.java

แจ้งคลาสที่สาธารณะ {
	
   ชื่อ String เอกชน = "เอบีซี";
   ปริมาณ int เอกชน = 10;

   ซื้อโมฆะสาธารณะ () {
      System.out.println ( "แจ้ง [ชื่อ:" + ชื่อ + " 
         จำนวน: "+ ปริมาณ +"] ซื้อ ");
   }
   ขายโมฆะสาธารณะ () {
      System.out.println ( "แจ้ง [ชื่อ:" + ชื่อ + " 
         จำนวน: "+ ปริมาณ +"] ขาย ");
   }
}

ขั้นตอนที่ 3

สร้างนิติบุคคลสั่งซื้อระดับใช้อินเตอร์เฟซ

BuyStock.java

เรียนสาธารณะ BuyStock ดำเนินการสั่งซื้อ {
   ส่วนตัวแจ้ง abcStock;

   ประชาชน BuyStock (Stock abcStock) {
      this.abcStock = abcStock;
   }

   โมฆะสาธารณะรัน () {
      abcStock.buy ();
   }
}

SellStock.java

เรียนสาธารณะ SellStock ดำเนินการสั่งซื้อ {
   ส่วนตัวแจ้ง abcStock;

   SellStock สาธารณะ (Stock abcStock) {
      this.abcStock = abcStock;
   }

   โมฆะสาธารณะรัน () {
      abcStock.sell ();
   }
}

ขั้นตอนที่ 4

คำสั่งสร้างสายชั้นเรียน

Broker.java

นำเข้า java.util.ArrayList;
นำเข้า java.util.List;

   โบรคเกอร์คลาสที่สาธารณะ {
   รายการส่วนตัว <คำสั่งซื้อ> orderList ใหม่ = ArrayList <คำสั่งซื้อ> (); 

   โมฆะสาธารณะ takeOrder (สั่งซื้อ) {
      orderList.add (สั่ง);		
   }

   placeOrders โมฆะสาธารณะ () {
      สำหรับ (การสั่งซื้อสั่งซื้อ: orderList) {
         order.execute ();
      }
      orderList.clear ();
   }
}

ขั้นตอนที่ 5

ใช้คลาสโบรกเกอร์ที่จะยอมรับและดำเนินการคำสั่ง

CommandPatternDemo.java

CommandPatternDemo คลาสที่สาธารณะ {
   ประชาชนเป็นโมฆะคง main (String args []) {
      หุ้น abcStock = หุ้นใหม่ ();

      BuyStock buyStockOrder = BuyStock ใหม่ (abcStock);
      SellStock sellStockOrder = SellStock ใหม่ (abcStock);

      โบรกเกอร์นายหน้าโบรกเกอร์ = ใหม่ ();
      broker.takeOrder (buyStockOrder);
      broker.takeOrder (sellStockOrder);

      broker.placeOrders ();
   }
}

ขั้นตอนที่ 6

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

หุ้น [ชื่อ: เบื้องต้นจำนวน: 10] ซื้อ
หุ้น [ชื่อ: เบื้องต้นจำนวน: 10] ขาย