İçeriğe geç

Viper Pattern nedir ?

Merhabalar bu yazımla birlikte yeni yılın ilk blog yazısı ile öğrenmeye devam ediyoruz. Bu yazımda iOS yazılım tasarım desenlerinden olan Viper tasarım deseni nedir ? ve bize neler sunar sorusuna yanıt bulacağız.

iOS uygulamalarımızda kullandığımız bir çok tasarım deseni bulunur ancak proje büyüdükçe kullandığımız desenler yetersiz kalmaya başlar. Örneğin MVC deseni veya MVVM desenini örnek verebiliriz. iOS için bugüne kadar tasarlanmış ve iOS uygulama yapısı ile direkt olarak en uyumlu desen Viper olarak kabul görmektedir.

Yukarda paylaştığım diagramda Viper yapısını çok güzel bir şekilde görebilirsiniz. Bu yapıda yer alan düğümlerden tek tek bahsedelim.

View: Bildiğimiz gibi ViewController içerisinde bulunan kodlar diyebiliriz. Burada sadece presenterden gelecek verileri kullanırız. Farklı bir işlem yapılmaz. Sadece ilgili presenteri ile bağlıdır.

Interactor: Uygulamanın Bussines Logic olarak adlandırdığımız kısmıdır. Burada UI işlemleri yapılmaz. (Fetch,Update vs) işlemler burada gerçekleşir. MVVM tasarım desenindeki VM görevini görür.

Presenter: View ve Interactor arasındaki bağlantıyı gerçekleştirir. Interactordan aldığı verileri, View ile haberleştirip View katmanının kullanmasını sağlar. Bu katmanda UI veya bussines logic işlemleri bulunmamalıdır.

Entity: Uygulamanın Model kısmıdır. Uygulama ile ilgili Data modeller burada bulunur. Bu kısım sadece Interactor ile işbirliği yapar. Diğer kısımlarda bulunmamalıdır.

Router: Bu katman uygulamanın sayfalarının ne zaman gösterileceğini belirlememizi sağlayan katmandır. Bu katman Coordinator tasarım deseni ile modellenebilir.

Bu tasarım deseninin tabiki belirli avantajları ve dezavantajları bulunmaktadır. Aşağıda bunlara birlikte bakalım.

Avantajları nelerdir ?

  • Kodun test edilebilirliğini artırır.
  • Uygulamayı parçalara ayırdığı için yenilenebilirliğini artırır.
  • Kodun okunabilirliğini artırır.

Dezavantajları nelerdir ?

  • Küçük projelerde kullanımı zordur.
  • Büyük projelerde takımdaki herkesin bu deseni bilmesi ve projeye göre modeli doğru oturtması gerekmektedir.
  • Proje içerisinde bir çok klasör, delegate bulunduğu için karmaşıklık yaratabilir.

Yazının sonlarına gelirken bu tasarım deseninin iOS için en uygun tasarım deseni olduğunu söyleyebiliriz ancak ufak tefek projeler için uygun olduğunu söylenemez. Ufak ve orta olarak adlandırabileceğimiz projelerde MVVM tasarım deseni bana göre en konforlu tasarım desenidir. Önemli olan uygun projede uygun tasarım desenini kullanarak projeyi geliştirip devamını sağlamak.

 

 

 

 

Kategori:Design Patterns

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Copyright © 2022 Kenan Atmaca