Latest web development tutorials
×

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

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

设计模式其他

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

intercepting รูปแบบตัวกรอง

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

  • กรอง (Filter) - กรองก่อนหรือหลังการดำเนินการจัดการคำขอขอให้ดำเนินการบางอย่าง
  • ห่วงโซ่กรอง (กรองโซ่) - ห่วงโซ่กรองที่มีจำนวนมากของตัวกรองและการดำเนินงานของฟิลเตอร์เหล่านี้บนเป้าหมายในลำดับที่กำหนดไว้
  • เป้าหมาย - เป้าหมายเป็นตัวจัดการขอวัตถุ
  • ตัวจัดการตัวกรอง (Filter Manager) - ฟิลเตอร์กรอง Manager และสายโซ่ตัวกรอง
  • ไคลเอนต์ (Client) - วัตถุไคลเอ็นต์เพื่อเป้าหมายวัตถุที่จะส่งคำขอ

การสำนึก

เราจะสร้างFilterChain,FilterManager เป้าหมายลูกค้าหมายถึงหน่วยงานที่เป็นวัตถุต่างๆAuthenticationFilterและDebugFilterแทนหน่วยงานฟิลเตอร์

InterceptingFilterDemo เราแสดงให้เห็นถึงการใช้งานของชั้นเรียนลูกค้าที่จะแสดงให้เห็นถึงรูปแบบการออกแบบการสกัดตัวกรอง

intercepting รูปแบบตัวกรองแผนภาพ UML

ขั้นตอนที่ 1

สร้างตัวกรองการเชื่อมต่อของตัวกรอง

Filter.java

กรองอินเตอร์เฟซที่สาธารณะ {
   โมฆะสาธารณะรัน (คำขอ String);
}

ขั้นตอนที่ 2

สร้างตัวกรองนิติบุคคล

AuthenticationFilter.java

เรียนสาธารณะ AuthenticationFilter ดำเนินกรอง {
   โมฆะสาธารณะรัน (คำขอ String) {
      System.out.println ( "คำขอตรวจสอบสิทธิ์:" + คำขอ);
   }
}

DebugFilter.java

เรียนสาธารณะ DebugFilter ดำเนินกรอง {
   โมฆะสาธารณะรัน (คำขอ String) {
      System.out.println ( "ล็อกคำขอ:" + คำขอ);
   }
}

ขั้นตอนที่ 3

สร้างเป้าหมาย

Target.java

เป้าหมายระดับสาธารณะ {
   โมฆะสาธารณะรัน (คำขอ String) {
      System.out.println ( "การดำเนินการคำขอ:" + คำขอ);
   }
}

ขั้นตอนที่ 4

สร้างห่วงโซ่ตัวกรอง

FilterChain.java

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

เรียนสาธารณะ FilterChain {
   รายการส่วนตัว <กรอง> ฟิลเตอร์ใหม่ = ArrayList <กรอง> ();
   เป้าหมายของเอกชน

   โมฆะสาธารณะ addFilter (กรอง Filter) {
      filters.add (Filter);
   }

   โมฆะสาธารณะรัน (คำขอ String) {
      สำหรับ (กรองกรอง: ฟิลเตอร์) {
         filter.execute (ขอ);
      }
      target.execute (ขอ);
   }

   โมฆะสาธารณะ setTarget (เป้าหมายเป้าหมาย) {
      this.target = เป้าหมาย
   }
}

ขั้นตอนที่ 5

สร้างจัดการตัวกรอง

FilterManager.java

เรียนสาธารณะ FilterManager {
   FilterChain FilterChain;

   ประชาชน FilterManager (เป้าหมายเป้าหมาย) {
      FilterChain = ใหม่ FilterChain ();
      filterChain.setTarget (เป้าหมาย);
   }
   โมฆะสาธารณะ setFilter (กรอง Filter) {
      filterChain.addFilter (Filter);
   }

   โมฆะสาธารณะ filterRequest (ขอ String) {
      filterChain.execute (ขอ);
   }
}

ขั้นตอนที่ 6

สร้างไคลเอ็นต์ลูกค้า

Client.java

ไคลเอนต์คลาสที่สาธารณะ {
   FilterManager filterManager;

   โมฆะสาธารณะ setFilterManager (FilterManager filterManager) {
      this.filterManager = filterManager;
   }

   โมฆะสาธารณะ SendRequest (ขอ String) {
      filterManager.filterRequest (ขอ);
   }
}

ขั้นตอนที่ 7

ใช้โปรแกรมในการแสดงให้เห็นถึงรูปแบบการออกแบบตัวกรองสกัดกั้น

FrontControllerPatternDemo.java

เรียนสาธารณะ InterceptingFilterDemo {
   ประชาชนเป็นโมฆะคง main (String args []) {
      FilterManager filterManager = ใหม่ FilterManager (เป้าหมายใหม่ ());
      filterManager.setFilter (AuthenticationFilter ใหม่ ());
      filterManager.setFilter (DebugFilter ใหม่ ());

      ลูกค้าลูกค้า = ลูกค้าใหม่ ();
      client.setFilterManager (filterManager);
      client.sendRequest ( "บ้าน");
   }
}

ขั้นตอนที่ 8

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

คำขอตรวจสอบ: หน้าแรก
เข้าสู่ระบบบัส: หน้าแรก
คำขอดำเนินการ: หน้าแรก