Creator tasarım kalıbı

Bir sınıfın nesnesini (instance) oluşturmaktan sorumlu olacak sınıfı belirlemede yol gösteren GRASP tasarım kalıbıdır.

Bu tasarım kalıbına göre, aşağıdaki koşullardan biri, tercihen birden fazlası sağlanıyorsa B sınıfı A sınıfının örneğini yaratmaktan sorumlu olmalıdır:

1) B’nin nesneleri A’ nın nesnelerini içeriyorsa ya da içererek bir bütünü oluşturuyorsa.

2) B’nin nesneleri A’nın nesnelerinin kaydını tutuyorsa.

3) B’nin nesneleri A’nın nesnelerini yoğun olarak kullanıyorsa.

4) B’nin nesneleri A’nın nesnelerinin yaratılması aşamasında geçilmesi gereken bilgilere sahipse.

Online kitap satışı yapan bir site tasarladığımızı düşünelim. Alışveriş sepetini ifade eden ShoppingCart ve alışveriş sepetindeki her bir elemanı ifade eden CartItem sınıflarımız olsun.

Bu örneğimizde ShoppingCart sınıfı 1,3,4 nolu koşulları sağlayarak, CartItem nesnelerinin yaratılmasından sorumlu olacaktır. Bu sınıfta yer alacak addItem(Book book, int quantity) metodu bu yaratma işleminin gerçekleşmesi için uygun bir metod olacaktır.