본문 바로가기
프로그래밍/Swift

Swift Singletone 패턴 학습

by Mr-후 2018. 5. 9.
반응형


Swift Singletone 패턴 학습 



오브젝티브C에 비해 한결 간편해진 스위프트의 싱글톤 패턴. 어느 패턴보다 더 익숙하게 잘 사용하는 나는 싱글톤을 좋아한다. 싱글톤 패턴을 싫어하는 사람도 많고 이유도 다양하지만 어플리케이션 전역에서 접근하기 수월하며 재 생성에 대한 부담을 줄여 주므로 앱 개발 시에는 꼭 필요한 패턴이라고 생각이 든다. 

스위프트에서 싱글톤 패턴을 사용하는 것은 너무나 간단하기 때문에 코드로 간단히 살펴보자. 

/**

공통 데이터 관리 싱글톤

 */

class SketchDataManager {

    

    static let shared: SketchDataManager = {

        return SketchDataManager()

    } ()

    

    private var myJoinGroups = [Any]()

    

}


접근 사용은 SketchDataManager.shared() 간단하다. 

그리고 해당 Manager의 멤버 메서드는 extension으로 따로 관리한다. 자료 데이터에 대한 setter/getter가 필요하다. 

extension SketchDataManager {

    

    //setter

    func setMyGroups(list: [Any]) {

        myJoinGroups.removeAll()

        myJoinGroups = list

    }

    

    //getter

    func getMyGroups() -> [Any] {

        return myJoinGroups

    }

    

    

    /*

    그룹가입 여부를 리턴한다.

    */

    func isJoinGroup(id: String) -> Bool {

        var ret : Bool = false

        

        for item in self.myJoinGroups {

            let tempDic : Dictionary<String, Any> = item as! [String : Any]

            if let groupId = tempDic["group_id"] as? String {

                if groupId == id {

                    ret = true

                    break

                }

            }

        }

        

        return ret

    }

}


어떤 클래스에서라도 접근이 가능하고 자유자재로 컨트롤이 가능하다는 것은 굉장히 매력적이다. 

잘 활용하면 손쉬운 앱개발을 하는데 많은 도움을 준다. 


반응형