Latest web development tutorials
×

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

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

设计模式其他

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

null Object Model

รูปแบบวัตถุว่าง (Null แบบ Object) และการตรวจสอบวัตถุแทนว่างเปล่าสำหรับอินสแตนซ์โมฆะวัตถุ วัตถุ null ยังไม่ได้ตรวจสอบค่า null แต่ไม่เกิดปฏิกิริยาความสัมพันธ์ของการดำเนินการใด ๆ วัตถุ Null ดังกล่าวยังสามารถให้การทำงานเริ่มต้นเมื่อข้อมูลไม่พร้อมใช้งาน

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

การสำนึก

เราจะสร้างการกระทำที่กำหนดเอง (ในกรณีนี้ชื่อของลูกค้า) ระดับนามธรรมAbstractCustomerและขยายชั้นเรียนระดับกิจการAbstractCustomerCustomerFactory ชื่อชั้นโรงงานขึ้นอยู่กับลูกค้าที่จะส่งมอบหรือส่งคืนวัตถุRealCustomerNullCustomer

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

รูปแบบวัตถุ null แผนภาพ UML

ขั้นตอนที่ 1

สร้างระดับนามธรรม

AbstractCustomer.java

ระดับนามธรรมสาธารณะ AbstractCustomer {
   การป้องกันชื่อ String;
   ประชาชน isNil บูลีนนามธรรม ();
   ประชาชนนามธรรม String getName ();
}

ขั้นตอนที่ 2

สร้างขยายชั้นเรียนนิติบุคคลดังกล่าวข้างต้นระดับ

RealCustomer.java

เรียนสาธารณะ RealCustomer ขยาย AbstractCustomer {

   RealCustomer สาธารณะ (ชื่อ String) {
      ชื่อ this.name =;		
   }
   
   @Override
   ประชาชน String getName () {
      กลับชื่อ;
   }
   
   @Override
   isNil บูลีนสาธารณะ () {
      กลับเท็จ;
   }
}

NullCustomer.java

เรียนสาธารณะ NullCustomer ขยาย AbstractCustomer {

   @Override
   ประชาชน String getName () {
      กลับ "ไม่อยู่ในฐานข้อมูลของลูกค้า";
   }

   @Override
   isNil บูลีนสาธารณะ () {
      กลับจริง;
   }
}

ขั้นตอนที่ 3

สร้างคลาสCustomerFactory

CustomerFactory.java

CustomerFactory คลาสที่สาธารณะ {
	
   สาธารณะคง String สุดท้าย [] = ชื่อ { "ร็อบ", "โจ", "จูลี่"};

   สาธารณะคง AbstractCustomer getCustomer (ชื่อ String) {
      for (int i = 0; i <names.length; i ++) {
         ถ้า (ชื่อ [I] .equalsIgnoreCase (ชื่อ)) {
            กลับ RealCustomer ใหม่ (ชื่อ);
         }
      }
      กลับ NullCustomer ใหม่ ();
   }
}

ขั้นตอนที่ 4

ใช้CustomerFactory,ขึ้นอยู่กับชื่อของลูกค้าที่จะผ่านที่จะได้รับหรือRealCustomerNullCustomer วัตถุ

NullPatternDemo.java

NullPatternDemo คลาสที่สาธารณะ {
   ประชาชนเป็นโมฆะคง main (String args []) {

      AbstractCustomer customer1 = CustomerFactory.getCustomer ( "ร็อบ");
      AbstractCustomer customer2 = CustomerFactory.getCustomer ( "บ๊อบ");
      AbstractCustomer customer3 = CustomerFactory.getCustomer ( "จูลี่");
      AbstractCustomer customer4 = CustomerFactory.getCustomer ( "ลอร่า");

      System.out.println ( "ลูกค้า");
      System.out.println (customer1.getName ());
      System.out.println (customer2.getName ());
      System.out.println (customer3.getName ());
      System.out.println (customer4.getName ());
   }
}

ขั้นตอนที่ 5

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

ลูกค้า
ปล้น
ไม่ได้อยู่ในฐานข้อมูลของลูกค้า
จูลี่
ไม่ได้อยู่ในฐานข้อมูลของลูกค้า