• Etkinlik Takvimi
  • Site Haritası
  • Hakkında
    • Biz Kimiz
    • Sponsorluk
      • Sitene Banner Ekle
      • Reklam Ver
  • İletişim

MSHOWTO Topluluğu ve Bilişim Portalı

  • Anasayfa
  • Forum
  • Tüm Makaleler
  • Altyapı
    • Cloud Hizmetleri (Bulut Bilişim)
      • Microsoft Azure
      • Microsoft Office 365
      • EMS
      • OMS
    • Open Source
    • Container
    • Server Ailesi
      • Microsoft PowerShell
      • Server 2019
      • Server 2016
      • Server 2012
      • Server 2008
      • Server 2003
    • Exchange Server
      • Exchange Server 2019
      • Exchange Server 2016
      • Exchange Server 2013
      • Exchange Server 2010
      • Exchange Server 2007
      • Exchange Server 2003
    • Client Ürünleri
      • Windows 10
      • Windows 8
      • Windows 7
      • Mobil
      • Microsoft Office
    • Sanallaştırma
    • System Center
      • Operation Manager (SCOM)
      • Configuration Manager (SCCM)
      • Service Manager (SCSM)
      • Virtual Machine Manager (SCVMM)
      • Data Protection Manager (DPM)
      • Orchestrator (SCorh)
    • Network
    • Üretici Teknolojileri
    • Güvenlik Ürünleri
      • Forefront
      • ISA Server
      • Juniper ve Fortinet
      • Symantec ve Trend Micro
    • IT Standartları
  • Yazılım
    • DevOps
    • C#
    • ASP.Net
    • Visual Studio
    • Mobil Yazılım
    • Java
    • SQL Server
    • Dynamics CRM
  • Daha Fazla
    • Haberler
    • Seminerler
    • Webcast
    • Video
    • Sunumlar
  • Fotoğraflar
BUNLARA BAKTINIZ MI :
  • VM Hardware Version 14 Yeni Özellikler
  • Oracle DB HR Veritabanı Nedir ve HR User Oluşturma Nasıl Yapılır?
  • Vmware Esxi 6.7 Kurulumunda Cisco Flexibleflash Hatasının Çözümü
  • Yazılım Geliştiriciler için Azure: Azure Kubernetes Service (AKS) – Bölüm 2
  • VMware DRS Kullanımı
  • MSHOWTO SQL DAY Etkinliğine Davetlisiniz
  • MSHOWTO Haftanın Özeti : 19 | 07
Advertisement
Advertisement
Buradasınız :Anasayfa » Tüm Makaleler » ASP.Net » Tasarım Desenleri Yazı Dizisi – Bölüm 2 – Builder (Kurulum)

Tasarım Desenleri Yazı Dizisi – Bölüm 2 – Builder (Kurulum)

Yazar :Erkan Kilmen Tarih : 16/02/2015 Kategori : ASP.Net, C# 0
Okuma Süresi: 3 dakika

Creational Patterns (Yaratıcı Tasarım Desenleri) grubu altında yer alan Builder tasarım deseni istemci tarafından talep edilen nesnelere ait daha önceden belirli kurallar çerçevesinde hazırlanmış olan içeriklerin, otomatik olarak cevap vermesini sağlamaktadır.

Bunun en önemli nedenlerinden birisi talep edilen nesnenin farklı içeriklerde çeşitlerine ihtiyaç duyulmasıdır. Bu durumu şu şekildeki bir senaryo ile daha kolay kavrayabiliriz.


Resim-1

Fastfood ürün satışı yapılan bir işletmede aşağıdaki şekilde 3 adet menünün bulunduğunu düşünelim.

Menü : Kaşarlı Tost Menüsü

  • Kaşarlı Tost
  • 4 Adet Yeşil Zeytin
  • 3 Adet Salatalık Dilimi
  • 2 Adet Domates Dilimi
  • Kola

 

Menü : Sucuklu Tost Menüsü

  • Sucuklu Tost
  • 4 Adet Siyah Zeytin
  • 1 Adet Beyaz Peynir Dilimi
  • Ayran

 

Menü : Soğuk Sandviç Menüsü

  • Soğuk Sandviç
  • 4 Adet Salatalık Turşusu
  • 2 Adet Biber
  • Çay

 

Bu işletmeye gittiğimizde menü seçimi sonrası yemeklerin hazırlanması işleminde standartlar dahilinde içeriğin ne olduğunu belirtmeyiz değil mi?

Yemekler hazırlanır ve önümüze gelir. Bizim bu aşamada yapmış olduğumuz işlem ise sadece bize sunulmasını istediğimiz menüye ait seçimin yapılmasıdır.

İşte Builder Tasarım Deseni de tam olarak bu işlemi gerçekleştirir. Biz sadece bize sunulmasını istediğimiz nesneyi seçeriz ve nesne arka planda hazırlanmış olan içeriklerinin işlenmiş hali ile bizlere sunulur.

Şimdi belirtmiş olduğumuz işletmemize ait işleyişi Builder Tasarım Deseni ile tasarlayalım.

İlk yapmamız gereken işlemimiz tüm menülerimizde bulunan ve Yemek – Garnitür –İçecek olarak gruplandıracağımız taban bilgileri tanımlamak.


Resim-2

Taban bilgilerimizden farklı olarak tanımlama yapmış olduğumuz Classımızda ToString() metodunu override ile ezmiş olmamızın sebebi menümüze ait içeriğin ToString() metodunu kullanacağımız sipariş oluşturma aşamasında ekrana gelmesini sağlamaktır.

Taban bilgilerimizi tanımladıktan sonra Menulerimizin hazırlanması ile ilgili işlemleri belirleyen sınıfımızı her menünün içeriği farklı olması nedeniyle abstract olarak hazırlayalım


Resim-3

Bu sınıfımızdaki protected olarak tanımlanmış olan _Menu nesnesi Menülerimiz altından bir önceki sınıf içeriğinde belirttiğimiz ToString() metodumuza erişmek için gereklidir. Ancak dışarıdan erişimi sadece okunabilir tipte olmasını istediğimizden dolayı protected olarak tanımlanmış ve yardımcı nesne olarak sadece okunabilir (read-only) property olarak Menu propertisi tanımlanmıştır.

Menülerimize ait hazırlanma aşamalarını da tanımladığımıza göre artık Menülerimizi ve içeriklerini belirlediğimiz sınıflarımızı tanımlayabiliriz.


Resim-4


Resim-5


Resim-6

Menülerimizi de oluşturduktan sonra sıra sipariş alındığında alınan siparişin hazırlanmasına geldi.


Resim-7

Siparişin hazırlanması aşamasında hazırlanmış olan siparişin sunumunu da classımıza üstlendirmiş olduk


Resim-8

Dilenirse bu işleme sipariş alma aşamasından sonra da (nesne talebi yapıldıktan sonra) ulaşabiliriz.

Artık müşterilerimizden (İstemciden) siparişimizi alabiliriz.


Resim-9

Gördüğünüz gibi sipariş aşamasında sadece yeni bir sipariş oluşturularak sipariş edilecek menü seçiminden başka bir şey yapılmamaktadır.

Şipariş verildikten (İstemci tarafından nesne talebinden) sonra ise sonuç karşımıza hazırlamış olduğumuz Menü içeriği olarak gelmektedir.


Resim-10

Hazırladığımız menülerimize yenilerini ekleme işleminde İstemci tarafındaki kodda hiçbir değişiklik yapmamıza gerek yoktur. Tek yapmamız gereken Yeni eklediğimiz Menünün de içeriğinin Yemek – Garnitür ve İçecek şeklinde gruplandırılmış yapıda olmasına dikkat etmektir.

Bu makalede kullanılan tasarım desenine ait kodu indirmek için buraya tıklayın. Dosyanın şifresi mshowto.

Bu konuyla ilgili sorularınızı http://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

Tag
BuilderCreational PatternsDesign Patterns
Tasarım Desenleri Yazı Dizisi – Bölüm 1 – Abstract Factory (Soyut Fabrika)
Tasarım Desenleri Yazı Dizisi – Bölüm 3 – Factory Method (Fabrika Metodu)

Hakkında: Erkan Kilmen

1981 İstanbul doğumlu Erkan KİLMEN. Programlamayla ilk olarak 2002 Yılında Visual Basic ile başlamıştır. Daha sonrasında bu dilin kendisine yetersiz olduğunu düşünerek Visual C++ ile programlama bilgisini daha ileriye taşımıştır. 2004 yılında .NET teknolojisiyle tanışmış ve bu dile merak sarmıştır. Halen Microsoft'un yeni vizyonu olan .NET teknolojileri üzerine çalışmalarını sürdürmektedir.

İlgili yazılar

  • MVC Data Annotations Nedir? Nasıl Kullanılır? Bölüm-35

    MVC Data Annotations Nedir? Nasıl Kullanılır? Bölüm-35

    01/02/2019

  • MVC Validation Summary Nedir? Nasıl Kullanılır? Bölüm-34

    MVC Validation Summary Nedir? Nasıl Kullanılır? Bölüm-34

    30/01/2019

  • MVC Server Side Validation Nedir? Nasıl Kullanılır? Bölüm-33

    MVC Server Side Validation Nedir? Nasıl Kullanılır? ...

    15/01/2019

  • MVC Html Action Helpers Nedir Nasıl Kullanılır? Bölüm-32

    MVC Html Action Helpers Nedir Nasıl Kullanılır? ...

    04/01/2019

Yorum Yazın

Cevabı iptal etmek için tıklayın.

Mshowto Topluluğu
  • linkedin
  • instagram
  • vimeo
  • youtube
  • twitter
  • googleplus
  • flickr
  • facebook

ARA

  1. Popüler
  2. En Son
  3. Yorum
  4. Tag
  • Android İşletim Sistemi ve Özellikleri

    Android İşletim Sistemi ve Özellikleri

    09/11/2010
  • Microsoft .NET Framework Tüm Sürümlerinin Yüklenmesi – Sorun Çözümü

    Microsoft .NET Framework Tüm Sürümlerinin Yüklenmesi – Sorun Çözümü

    11/09/2012
  • Adım Adım Backtrack 5 R3 GNOME Kurulumu – Nasıl Yapılır?

    Adım Adım Backtrack 5 R3 GNOME Kurulumu – Nasıl Yapılır?

    14/03/2013
  • Windows Server 2012′de Active Directory Kurulumu – Detaylı Anlatım

    Windows Server 2012′de Active Directory Kurulumu – Detaylı Anlatım

    27/06/2012
  • Unutulan Kablosuz Ağ (Wireless) Şifrelerini Bulma

    Unutulan Kablosuz Ağ (Wireless) Şifrelerini Bulma

    26/04/2012
  • VM Hardware Version 14 Yeni Özellikler

    VM Hardware Version 14 Yeni Özellikler

    21/02/2019
  • Veeam Backup & Replication v9.5 Update 4 Host Ekleme

    Veeam Backup & Replication v9.5 Update 4 Host Ekleme

    21/02/2019
  • Oracle DB HR Veritabanı Nedir ve HR User Oluşturma Nasıl Yapılır?

    Oracle DB HR Veritabanı Nedir ve HR User Oluşturma Nasıl Yapılır?

    20/02/2019
  • Veeam Backup & Replication v9.5 Update 4 Backup Repository Ekleme

    Veeam Backup & Replication v9.5 Update 4 Backup Repository Ekleme

    20/02/2019
  • Vmware Esxi 6.7 Kurulumunda Cisco Flexibleflash Hatasının Çözümü

    Vmware Esxi 6.7 Kurulumunda Cisco Flexibleflash Hatasının Çözümü

    19/02/2019
  • rewwett : eyvallah allah razı olsun kaç gündür arıyorum buldum sonunda çok bu ...

  • Orhan : Link kırılmış :D ...

  • gökhan : Eline sağlık Barış çok faydalı bir makale olmuş.. ...

  • Cem Aydın : Bu şekilde kurulum yaparsanız Elasticsearch 'un 9200 portunu tüm ağ ...

  • Engin : Ellerine sağlık Serdar. Güzel bir makale olmuş. ...

microsoft server azure exchange mshowto powershell Office 365 nasıl kurulur hyper-v server 2012 server 2008 nasil yapilir windows 8 sccm windows 7 exchange server azure nedir nedir windows system center exchange 2010 security kurulum isa Windows Azure

KATEGORİLER

  • Altyapı
  • ASP.Net
  • AWS
  • C#
  • Citrix
  • Client Ürünleri
  • Cloud Hizmetleri (Bulut Bilişim)
  • Configuration Manager (SCCM)
  • Container
  • Data Protection Manager (DPM)
  • DevOps
  • Dynamics CRM
  • EMS
  • Exchange Server 2003
  • Exchange Server 2007
  • Exchange Server 2010
  • Exchange Server 2013
  • Exchange Server 2016
  • Exchange Server 2019
  • Forefront
  • Güvenlik Ürünleri
  • Haberler
  • İpuçları
  • ISA Server
  • IT Standartları
  • Java
  • Juniper ve Fortinet
  • Lync Server
  • Microsoft Azure
  • Microsoft Office
  • Microsoft Office 365
  • Microsoft PowerShell
  • Mobil
  • Mobil Yazılım
  • Network
  • OMS
  • Open Source
  • Operation Manager (SCOM)
  • Orchestrator (SCorh)
  • Sanallaştırma
  • Seminerler
  • Server 2003
  • Server 2008
  • Server 2012
  • Server 2016
  • Server 2019
  • Server Ailesi
  • Service Manager (SCSM)
  • SQL Server
  • Sunumlar
  • Symantec ve Trend Micro
  • System Center
  • Tüm Makaleler
  • Üretici Teknolojileri
  • Veeam
  • Video
  • Virtual Machine Manager (SCVMM)
  • Visual Studio
  • VMware
  • Webcast
  • Windows 10
  • Windows 7
  • Windows 8
  • Yazılım
  1. ETKİNLİK FOTOĞRAFLARI

    IMG_8122
    IMG_8122
  2. ARŞİVLER

  3. En Güçlü Bilişim
  • linkedin
  • instagram
  • vimeo
  • youtube
  • twitter
  • googleplus
  • flickr
  • facebook
© Copyright 2005-2019, Tüm Hakları Saklıdır. | Bağımsız Bir Organizasyondur.