การสนทนาที่ถูกต้อง:
โหมดคำสั่งห่อหุ้มคำขอหรือการดำเนินการลงในวัตถุ ระบบรันไทม์โหมดคำสั่งใช้คำขอที่แตกต่างกันเพื่อกำหนดพารามิเตอร์ไคลเอนต์คำขอคิวหรือบันทึกการร้องขอบันทึกและสามารถให้ฟังก์ชั่นการเพิกถอนคำสั่งและฟังก์ชั่นการกู้คืน
เป็นที่นิยม:
จริงๆแล้วมันง่ายที่จะเข้าใจ โหมดคำสั่งสิ่งที่คุณสนใจคือคำสั่ง (หรือการดำเนินการ) มายกตัวอย่างกันเถอะ ใน บริษัท การดำเนินงานทั้งหมดเป็นเหมือนระบบ เจ้านายออกคำสั่งและผู้นำระดับกลางได้รับคำสั่งจากนั้นมอบหมายให้พนักงานเฉพาะที่รับผิดชอบ กระบวนการทั้งหมดชัดเจน มีข้อกำหนดวิธีแก้ไขกระบวนการนี้และสร้างระบบ เราแค่ต้องเข้าใจประเด็นสำคัญ: คำสั่งซื้อ แยกออกและทุกอย่างอื่นจะได้รับการแก้ไข แยกคำสั่งและห่อหุ้มพวกเขาลงในวัตถุอิสระเพื่อให้ได้การแยกออก สำหรับคนอื่น ๆ มันสามารถขยายได้ง่ายไม่ว่าคำสั่งนี้จะถูกเสนอโดย CEO แผนกทรัพยากรบุคคลหรือพ่อของคุณ ไม่ว่าผู้บริหารของคำสั่งนี้คือจางซานหรือเต่า การเกิดขึ้นของแบบจำลองนี้เป็นจริง "การเข้าใจความขัดแย้งหลัก" ตัวอย่างเพิ่มเติมเช่นนักเขียนคนอื่นอ้างว่า "อะไรคือความแตกต่างระหว่างการไปที่ริมถนนและไปที่ร้านอาหารบาร์บีคิวเพื่อกินบาร์บีคิว" หรือ "ราชาลิงทำให้เอะอะใหญ่เกี่ยวกับจักรพรรดิหยกในพระราชวังสวรรค์
โหมดคำสั่ง Java เป็นหลักของการห่อหุ้มคำสั่งซึ่งแยกความรับผิดชอบในการออกคำสั่งและมอบหมายให้พวกเขาไปยังวัตถุที่แตกต่างกัน ในแง่ของคนธรรมดาฉันเป็นเจ้านายดังนั้นฉันจึงส่งคำสั่งซื้อ สำหรับผู้ที่จะส่งคำสั่งนี้ไปและผู้ที่ดำเนินการมันขึ้นอยู่กับฉัน ฉันไม่ส่งเงินเพื่อจ้างคนมาทำให้เกิดปัญหากับตัวเอง คุณเป็นพนักงานที่รับผิดชอบสิ่งต่าง ๆ และหน้าที่ของคุณคือการทำงานที่ได้รับมอบหมายจากผู้บังคับบัญชาของคุณ จงลงสู่พื้นดินไม่ทราบมากเกินไปอย่านินทาอย่าถามมากเกินไป
ทำให้สำเร็จ:
มาดูแผนภาพชั้นเรียนก่อน:
จากนี้เราจะดูรหัสตัวอย่าง:
ส่วนต่อประสานสาธารณะ icommand {void execute (); } concretecommand ระดับสาธารณะใช้ icommand {ผู้รับตัวรับสัญญาณส่วนตัว; คอนกรีตสาธารณะ (ตัวรับสัญญาณรับ) {this.receiver = ตัวรับสัญญาณ; } @Override โมฆะสาธารณะ Execute () {this.Receiver.Action (); }} ตัวรับสัญญาณสาธารณะ {public void action () {system.out.println ("ผู้รับทำอะไรบางอย่าง"); }} คลาสสาธารณะ Invoker {คำสั่ง ICOMMAND ส่วนตัว; Public Invoker (คำสั่ง icommand) {this.command = คำสั่ง; } โมฆะสาธารณะเรียกใช้ () {this.command.execute (); }} การทดสอบคลาสสาธารณะ {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {ผู้รับตัวรับสัญญาณ = ตัวรับสัญญาณใหม่ (); // คำสั่งผู้ดำเนินการจริง icommand = concretecommand ใหม่ (ตัวรับสัญญาณ); // คำสั่งที่ใช้สำหรับการแยก Invoker = new Invoker (คำสั่ง); // -
ข้อได้เปรียบ:
ข้อบกพร่อง:
อาจมีคลาสคำสั่งเฉพาะมากเกินไป