Design Patterns: Mediator, Swift Coding’de Nasıl Uygulanır

Design Patterns: Mediator, Swift Coding’de Nasıl Uygulanır?

Design Patterns, programcıların çözümleri daha kolay anlaşılır ve okunabilir hale getirmelerine yardımcı olan modellerdir. Bu modeller, programcıların karmaşık problemleri çözmek için kullanabilecekleri prensipleri tanımlar ve tasarlar. Sonuç olarak, bir design pattern uygulandığında, programcıların neredeyse hiçbir değişiklik yapmadan aynı çözümleri tekrar kullanmalarını sağlar.

Swift kodlamada en popüler design patternlerden biri, Mediator Pattern’dir. Mediator Pattern, bir grup nesne arasındaki iletişimi kontrol etmek için kullanılır. Mediator Pattern’da, tüm nesnelerin arasındaki haberleşmeyi bir araya getiren bir orta nesne mevcuttur. Bu orta nesne, tüm nesnelerin arasındaki haberleşmeyi kontrol eder.

Swift kodlamada Mediator Pattern’in nasıl uygulanacağını anlamak için, öncelikle iki temel unsurun ne olduğunu anlamalıyız. Bunlar; Colleague ve Mediator. Colleague, Mediator Pattern’da bir araya gelen tüm nesnelerin genel adıdır. Mediator ise, bu nesneler arasındaki haberleşmeyi kontrol eden orta nesnedir.

Şimdi, Swift kodlamada Mediator Pattern’in nasıl uygulanacağını görelim. Öncelikle, Colleague’lerin protokolünü tanımlayalım.

protocol Colleague {
    var mediator: Mediator { get set }
    func sendMessage(_ message: String)
    func receiveMessage(_ message: String)
}

Sonra, Mediator protokolünü tanımlamalıyız:

protocol Mediator {
    func sendMessage(_ message: String, colleague: Colleague)
}

Şimdi, Colleagues ve Mediator sınıflarını tanımlayalım. Colleagues sınıfı, her bir Colleague nesnesinin haberleşmesini kontrol eden Mediator nesnesini içerir.

class ColleagueA: Colleague {
    var mediator: Mediator
    
    init(mediator: Mediator) {
        self.mediator = mediator
    }
    
    func sendMessage(_ message: String) {
        mediator.sendMessage(message, colleague: self)
    }
    
    func receiveMessage(_ message: String) {
        print("ColleagueA received: \(message)")
    }
}

class ColleagueB: Colleague {
    var mediator: Mediator
    
    init(mediator: Mediator) {
        self.mediator = mediator
    }
    
    func sendMessage(_ message: String) {
        mediator.sendMessage(message, colleague: self)
    }
    
    func receiveMessage(_ message: String) {
        print("ColleagueB received: \(message)")
    }
}

Mediator sınıfı ise, tüm Colleague nesnelerinin arasındaki haberleşmeyi kontrol eder.

class Mediator {
    var colleagueA: ColleagueA
    var colleagueB: ColleagueB
    
    init(colleagueA: ColleagueA, colleagueB: ColleagueB) {
        self.colleagueA = colleagueA
        self.colleagueB = colleagueB
    }
    
    func sendMessage(_ message: String, colleague: Colleague) {
        if colleague === colleagueA {
            colleagueB.receiveMessage(message)
        } else {
            colleagueA.receiveMessage(message)
        }
    }
}

Son olarak, Mediator Pattern’i kullanmak için, Colleague nesnelerini ve Mediator nesnesini oluşturalım.

let colleagueA = ColleagueA(mediator: mediator)
let colleagueB = ColleagueB(mediator: mediator)

let mediator = Mediator(colleagueA: colleagueA, colleagueB: colleagueB)

colleagueA.sendMessage("Hello from ColleagueA")
// Prints "ColleagueB received: Hello from ColleagueA"

colleagueB.sendMessage("Hello from ColleagueB")
// Prints "ColleagueA received: Hello from ColleagueB"

Swift kodlamada Mediator Pattern, karmaşık problemleri çözmek için kullanılabilecek etkili bir yöntemdir. Mediator Pattern, haberleşmeyi kontrol eden orta nesne kullanarak, tüm nesneler arasındaki haberleşmeyi kontrol etmeyi ve tekrar kullanılabilir çözümler tasarlamayı sağlar. Yukarıda verilen kod örneği, Swift kodlamada Mediator Pattern’in nasıl uygulanacağını göstermektedir.

Scroll to Top