İçeriğe geç

MVC Pattern

Merhabalar bu yazımda yazılım dünyasında önemli bir yere sahip olan MVC tasarım kalıbını İOS üzerinde nasıl modeller ve kullanırız bundan bahsedeceğim.

MVC (Model – View – Controller) kalıbı tüm nesne yönelimli yapıya sahip dillerde modellenen bir yapı. Çoğu büyük projelerde kullanılmakta ve çok bilindik bir yapı. Bu yapıyı neden kullanmamız gerekli ? diye soracak olursanız. Yazılımı kaliteli ve sürekli yenilenmesi kolay hale getirmek için yapısal modeller geliştirilmiştir. MVC yapısıda bu modellerden biridir. Tasarım ve veriyi bir birinden ayırır. Böylelikle daha düzenli projeler oluşmuş olur.

Çoğu dilde kullanılan frameworkler, gruba dayalı yazılımsal proje çalışmaları içinde oldukça işlevseldir.

İOS ile uygulama yazarken kullanabileceğimiz güzel tasarım kalıplarındandır. Yazacağımız projeyi bu yapıya göre modelleyip yazmamız gerekir.

Yukardaki yapı İOS ile MVC kullanım diyagramıdır. Bildiğimiz gibi sayfaların ViewControllerleri vardır bu yapı ile görsel nesneler birlikte çalışır ve etkileşim halindedir. (UIview, UIButton vs) ancak sunucudan veya elimizde bulunan veriyi bu sayfalarda işlemek ve kullanmak belli bir süre sonra kargaşa bir yapıya dönüşebilir.

Bu yüzden Model yapımızda veri iletişim ve data işlemlerimizi yazıyoruz. View kısmında görsel arayüz tasarımlar, Controller kısmında ise bu iki yapıyı bütünleştirip kullanıcının önüne etkileşimli bir uygulamayı sunmuş oluyoruz. Kolay bir mantığa sahip ancak burda önemli olan kendi aklınızdaki projeye göre bu yapıyı kurgulayıp modellemeniz.

Aşağıda modeli basit bir şekilde tasvir eden kod yapımı inceleyebilirsiniz.

class User {  // # MODEL
    var name: String?
    var age: Int?
    var weight: Int?
    
    init(name:String?,age:Int?,weight:Int?) {
        self.name = name
        self.age = age
        self.weight = weight
    }
}


class viewController : UIViewController { // # View + Controller
    
    let tButton = UIButton()
    var uLabel = UILabel()
    
    var users:[User] = {
       let user_1 = User(name: "David", age: 32, weight: 170)
        let user_2 = User(name: "Alex", age: 26, weight: 177)
        
       return [user_1,user_2]
    }()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        tButton.addTarget(self, action: #selector(tapButton(_:)), for: .touchUpInside)
    }
    
    func tapButton(_ sender: UIButton) {
        
        uLabel.text = "\(users[0].name!) -- \(users[0].age!) -- \(users[0].weight!)"
        
    }

}

 

 

Tarih:Design PatternsiOS

Bu yazı yorumlara kapalı.

Copyright © 2021 Kenan Atmaca