pattern etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
pattern etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

14 Mart 2015 Cumartesi

MVVM nedir?

http://en.wikipedia.org/wiki/Model_View_ViewModel

MVC nedir?

MVC : Model - View -Controller nedir?

MVC bir architectural pattern yani mimari desendir.
Bir uygulamayı 3 ana katmana ayırır: model, view ve controller.

Model

Model, business yapılması için verinin şekillendirilmiş halidir.
Verileri yönetir ve gelen bilgi taleplerini cevaplar.

Model dediğimizde sökülüp-takılabilen bir paketi düşünmek gerekiyor.
Yani bir projeden alıp başka projeye aynen eklediğimizde sorunsuz şekilde çalışabilmeli.
Projeden bağımsız olmalı. Yani view ile controllerdan bağımsız olmalı.
Model paketi, entity sınıflarıve onları yöneten helper ya da utility sınıflarından oluşur.
Örneğin database crud işlemleri, kullanıcıdan gelen bilgilerin veritabanına bakarak kontrol edilmesi gibi işlemler modelde yapılır.

Burada "business" yapılır. Yani veri ile ilgili işlemler burada gerçekleşir.
Bu paketi böylece başka yerlere de taşıyarak aynen kullanabiliriz.

Model bir uygulamadaki veritabanı ile iletişim kuran sınıflar bütünüdür.

View

View dediğimizde kullanıcının gördüğü sayfayı düşünüyoruz.
UI dediğimiz user interface yani kullanıcı arayüzü burada oluşturulur.

Burada business yoktur. Sadece kullanıcıya gösterilecek ekran/sayfa oluşturulur.

Bu bir android uygulamasındaki layout dosyasıdır.
Bir enterprise web application'da JSP ya da JSF sayfalarıdır.

Controller

Controller dendiğinde aklımızda bir aracı imajı oluşmalı.
Model ile view arasındaki bağlantıyı, ya da köprüyü kuran yapıya controller diyoruz.
Bir nevi devamlı iki taraf arasında paslaşma yapar.
Fakat veritabanı ekleme/çıkarma, veritabanına bakarak kontrol yapma vb işlemleri yapmaz. Çünkü controllerın görevi sadece model ile view arasında iletişim kurmaktır. Bu tarz veritabanı işlemleri modelde yapılır.

Burada "business" yoktur. Yani veri işlenmesi yapılmaz.
Business'i yapan model ile view arawsında iletişim sağlanır.

Controller projeye bağımlıdır. Yani bir projeden söküp diğerine takamayız.

Bu bir android uygulamasındaki activity sınıfıdır.
Bir enterprise appliactionda servlet sınıfıdır.


MVC1

MVC2

MVC3


Kaynaklar

https://www.youtube.com/watch?v=eTdVkgF_Slo

https://www.youtube.com/watch?v=6EcjhVwH0Dw

https://developer.apple.com/library/mac/documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html

http://martinfowler.com/eaaDev/uiArchs.html

http://blog.iandavis.com/2008/12/what-are-the-benefits-of-mvc/

http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

4 Mart 2015 Çarşamba

Tasarım desenleri

Tasarım desenleri

1. Creational: Nesne yaratılmasıyla ilgili olanlar

Factory method : Nesne yaratımını bir factory ye devretmektir. Böylece factoryInstance.create() diyerek nesneyi instantiate ederiz. Fakat yaratılma sürecini görmeyiz. create metoduna parametre geçerek birden fazla classı aynı factory ile instantiate edebiliriz.
(polymorphism)

Abstract Factory : Factory leri de yaratan abstract factory ler oluşturmaktır. Bir çok sınıf altında çeşitli nesneler yaratılması gerektiğinde kullanılır.

Builder
Prototype

Singleton : Aynı anda sadece tek bir instance ı bulunması gereken durumlarda kullanılır. Class yaratılırken getInstance metodu ile yaratılır. Bu metod eğer instance var ise varolanı, yok ise yeni yaratıp onu döndürür.
Böylece aynı anda asla birden fazla instance bulunamaz.

2. Structural: Yapısal olanlar

Adapter : Birbirine uyumsuz olan iki classı uyumlu hale getirmek için bir adaptör görevi görür.

Bridge
Composite

Decorator : Genelde UI konusunda kullanılır.
Facade
Flyweight
Proxy

3. Behavioral: Davranışlarla ilgili olanlar

Chain of responsibility
Command
Interpreter
Mediator
Memento
Observer
State
Strategy
Template method
Visitor