Singleton Pattern
องค์ประกอบเชิงโครงสร้างของ Singleton
Singleton |
<<static>>-instance : Singleton |
<<static>>+getInstance |
ภาพ Class Diagram แสดงองค์ประกอบเชิงโครงสร้างของ singleton
การทำงานมีดังนี้
1 ) กิจกรรมจะเริ่มเมื่อ object ของ class ใด ๆ ทำการเรียก Method getInstance() ของ Singleton
2) Singleton ตรวจสอบว่า atribuite instance ของตนเองได้รับการสร้างแล้วหรือยัง ถ้ายัง Singleton จะสร้าง Attribute instance ขึ้น แต่ถ้า instance ถูกสร้างขึ้นแล้ว Singleton จะไม่ดำเนินการใด ๆ
ตัวอย่างการใช้งาน Singleton
ความต้องการ( Requirements)
ในระบบเครือข่ายขนาดเล็กระบบหนึ่ง ซึ่งมีอุปกรณ์นานาชนิดต่อเชื่อมกันอย่างเป็นระบบ ระบบมี printer เพียงตัวเดียวให้ใช้ร่วมกันในระบบ ดังนั้น ในช่วงเวลาใดเวลาหนึ่ง printer จะใช้งานเพียงงานเดียว ดังนั้นระบบจึงต้องการสิ่งที่ช่วยควบคุมได้ว่าในเวลาหนึ่ง ๆ จะมีผู้เข้ามาใช้งาน printer ได้เพียงคนเดียวเท่านั้น
จากความต้องการของระบบ เราสามารถออกแบบโครงสร้างของ printer ได้ดังรูป
รูปแสดง class diagram สำหรับระบบ “Single Resoure”
Class Printer มีรายละเอียดดังต่อไปนี้
- Instance เป็น static attribute ที่มี type เป็น printer
- Name เป็น static attribute ซึ่งเป็น attribute ที่ระบุชื่อของ object ของ printer ที่ถูกสร้างขึ้น
- getInstance() เป็น method ที่ทำหน้าที่สร้าง attribute instance โดยจะตรวจสอบก่อนว่า instance ถูกสร้างแล้วหนือยัง ถ้ายังจะถูกสร้างขึ้นพร้อมกับถูกตั้งชื่อ เมื่อ instance ถูกสร้างขึ้นแล้วจะถูกส่งไปยังผู้เรียกเพื่อนำไปใช้งานต่อไป
- returnInstance() เป็น method ที่ทำหน้าที่คืน instance กลับมาสู่ printer โดยเมื่อได้รับคืนมาแล้ว instance จะถูกทำลายทิ้ง
- getName() เป็น method ที่ทำหน้าที่อ่านชื่อของ object ของ printte
ตัวอย่างการสร้าง package และการ run code
- 
-
-
หลังจากนั้นทำการสร้าง clsss ภายใน package สำหรับในที่นี้จะทำการสร้าง class 2 class คือ
Class Printerclient และ class Printer
Code class PrinterClient.java
Code class Printer.java
ผลลัพธ์จากการ run Program
ไม่มีความคิดเห็น:
แสดงความคิดเห็น