Singleton Pattern in Swift

ผมเขียน Blog เกี่ยวกับการใช้ Singleton Pattern บน Objective-C ไว้แล้ว จะสรุปง่ายๆ คือ Singleton Object คือ Object ที่เราอยากมั่นใจได้ว่า เมื่อใดก็ตามที่เราเรียก Object ตัวนี้ เราจะได้ตัวเดิมเสมอ หรือพูดอีกนัยหนึ่งว่า จะไม่มีการสร้างซ้ำเป็นครั้งที่สอง

คราวนี้ใน Swift วิธีการสร้างกลับหลากหลายขึ้น เท่าที่ผมเจอมีอยู่ 3 วิธีมาดูกันเลย

Approach A: Global Constant


เนื่องจากเราไม่สามารถประกาศ `ค่าคงที่` (Constant) ให้เป็น private ใน Class ได้ในตอนนี้ จึงต้องใช้ Global Constant แทน ถ้าทำได้เมื่อไหร่นี่จะเป็นวิธีที่สร้าง Singleton Object ที่ดูดีเลยทีเดียว

Approach B: Nested Struct


Struct ต่างกันกับ Class โดยที่เราสามารถมี static constant ภายใน Struct ได้ ดังนั้นจึงประกาศ nested struct type ใน Class เพื่อสร้าง singleton object ได้

Approach C: Dispatch Once (เป็นวิธีที่นิยมที่สุดเวลาเขียน Objective-C)


ส่วนนี่เป็นวิธีที่สุดคลาสสิคอยู่แล้ว โดยการนำ Feature ในการจัดการ Thread ที่เรียกว่า GCD (Grand Central Dispatching) เข้ามาช่วยในการจอง Thread สำหรับ Singleton Object :)

Approach D: Static Let (One-line Singleton)

ในที่สุดบน Swift 2 เราก็สามารถทำได้แล้ว


\o/\o/\o/\o/\o/\o/\o/\o/\o/\o/\o/\o/\o/

Popular posts from this blog

[Android Dev] การติดตั้ง Eclipse+AndroidSDK เพื่อพัฒนาโปรแกรมบน Android

12 วิธี การบริการและดูแลลูกค้าในร้าน Starbucks

5 TED Talk ที่จะช่วยให้คุณทำงานดีขึ้น