Design Patterns with Swift: Mediator Pattern Explained

Design Patterns with Swift: Mediator Pattern Explained

Swift programlama dili, iOS ve macOS geliştiricileri için güçlü ve esnek bir platform sağlar. Swift, çeşitli tasarım desenlerini kullanarak geliştiricilerin uygulamalarını organize etmesine ve kodlarının karmaşıklığını ve bağımlılığını azaltmasına yardımcı olur. Bu yazıda, Swift ile tasarım desenlerinden biri olan Mediator desenini inceleyeceğiz.

Mediator deseni, uygulamanızdaki nesneler arasındaki iletişimin kontrol edilmesini sağlar. Bu desen, farklı nesneler arasındaki iletişimi basitleştirmek için kullanılır. Mediator deseni, nesnelerin birbirleriyle direkt olarak haberleşmemeleri için ortak bir araca ihtiyaç duyarlar. Mediator, nesneler arasındaki iletişimi kontrol etmek ve yönetmek için kullanılır. Mediator, nesneler arasındaki iletişimin kontrol edilmesi ve yönetilmesi için ortak bir arabirim sağlar.

Swift’de, Mediator desenini uygulamak için birkaç yol vardır. Birincisi, bir sınıfın protokolünü kullanarak Mediator’u tanımlamaktır. Örneğin, aşağıdaki kod parçacığında, bir arabirim olan “ChatMediator” protokolü tanımlanmıştır.

 protocol ChatMediator {
    func sendMessage(message: String, fromUser user: User)
    func addUser(user: User)
} 

Bu protokol, mesaj göndermek ve kullanıcı eklemek için iki fonksiyonu içerir.

Bir diğer yol, Mediator sınıfının bir sınıf olarak tanımlanmasıdır. Aşağıdaki kod parçacığında, ChatMediator sınıfının bir sınıf olarak tanımlanmıştır.

 class ChatMediator {
    var users: [User] = []
    
    func sendMessage(message: String, fromUser user: User) {
        for user in users {
            if user !== user {
                user.receive(message: message, fromUser: user)
            }
        }
    }
    
    func addUser(user: User) {
        users.append(user)
    }
} 

Bu sınıf, kullanıcıların listesini sakladığı bir diziye sahiptir. Ayrıca, mesaj göndermek ve kullanıcı eklemek için iki fonksiyonu içerir.

Son olarak, bir User sınıfı tanımlayalım. User sınıfı, mesaj almak için bir fonksiyon içerir.

 class User {
    let name: String
    
    init(name: String) {
        self.name = name
    }
    
    func receive(message: String, fromUser user: User) {
        print("\(user.name) sent message '\(message)' to \(name)")
    }
} 

Şimdi, Mediator desenini nasıl kullanabileceğimizi görelim. İlk olarak, bir ChatMediator nesnesi oluşturmalıyız.

 let chatMediator = ChatMediator() 

Sonra, kullanıcıları eklemeliyiz.

 let user1 = User(name: "John")
let user2 = User(name: "Alice")

chatMediator.addUser(user: user1)
chatMediator.addUser(user: user2) 

Son olarak, mesaj gönderebiliriz.

 chatMediator.sendMessage(message: "Hello!", fromUser: user1) 

Bu komutun çalıştırılması, Alice’e “John tarafından Hello! mesajı gönderildi” mesajını gösterir.

Swift ile Mediator desenini anladığımıza göre, bu desenin nasıl kullanılacağını gördük. Mediator deseni, nesneler arasındaki iletişimin kontrol edilmesini sağlayarak kodunuzun düzenlenmesini ve bağımlılıklarını azaltmayı sağlar. Swift ile Mediator desenini kullanarak, güçlü ve esnek uygulamalar oluşturabilirsiniz.

Scroll to Top