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

4 Mart 2015 Çarşamba

Patterns of Enterprise Application Architecture kitabı

Girişte bazı önemli konulardan bahsediliyor.
Enterprise Application nedir?

Core J2EE Tasarım desenleri 1 : DAO Data Access Object

Data Access Object

Problem:
Veriye erişilmesi ve değiştirilmesini encapsulate etmek istiyoruz.

İstekler:
  • You want to implement data access mechanisms to access and manipulate data in a persistent storage.
  • You want to decouple the persistent storage implementation from the rest of your application.
  • You want to provide a uniform data access API for a persistent mechanism to various types of data sources, such as RDBMS, LDAP, OODB, XML repositories, flat files, and so on.
  • You want to organize data access logic and encapsulate proprietary features to facilitate maintainability and portability.
Çözüm:

Use a Data Access Object to abstract and encapsulate all access to the persistent store. The Data Access Object manages the connection with the data source to obtain and store data.

Tasarım desenleri - Software Design Patterns Konusu

Design Patterns: Elements of Reusable Object-Oriented Software
Erich Gamma, ..
1994
ISBN-13: 078-5342633610
ISBN-10: 0201633612
http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/ref=pd_sim_b_2?ie=UTF8&refRID=0YPWWPQDCF6MBAF0MFFF


Pattern Oriented Software Architecture 
http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0471958697.html


Core J2EE Patterns
Tasarım desenleri web sayfasında da listelenmiş.
Topluca görmek için:
http://www.corej2eepatterns.com/images/CJP2Catalog.gif
Anasayfadan da desenleri tek tek inceleyebiliyoruz:
http://www.corej2eepatterns.com/index.htm


Patterns of Enterprise Application Architecture
Martin Fowler, David Rice, Matthew Foemmel, Edward Hieatt, Robert Mee, Randy Stafford Publisher : Addison Wesley
Pub Date : November 05, 2002
ISBN : 0-321-12742-0
Pages : 560
http://www.amazon.com/Patterns-Enterprise-Application-Architecture-Martin/dp/0321127420


Enterprise Integration Patterns : Designing, Building, and Deploying Messaging Solutions
Gregor Hohpe, Bobby Woolf
ISBN 0321200683
Addison-Wesley, 2004
http://www.amazon.com/o/asin/0321200683/ref=nosim/enterpriseint-20
http://www.enterpriseintegrationpatterns.com/toc.html

Enterprise Integration Patterns kitabı

http://www.amazon.com/Enterprise-Integration-Patterns-Designing-Addison-Wesley-ebook/dp/B000OZ0N9E

Kitabın yazarından bir sunum şurada mevcut: http://www.eaipatterns.com/docs/jaoo_hohpeg_enterpriseintegrationpatterns.pdf

Apache Camel sayfasında bu desenler anlatılıyor:
http://camel.apache.org/enterprise-integration-patterns.html

RedHat sayfasında hatırlatıcı flashcard lar mevcut:
https://www.redhat.com/en/files/resources/en-rhjb-fuse-eip-flashcards-10611447.pdf

Yine RedHat sitesinde bunların uygulanmasından bahsediliyor:
https://access.redhat.com/documentation/en-US/Fuse_ESB_Enterprise/7.0/pdf/Implementing_Enterprise_Integration_Patterns/Fuse_ESB_Enterprise-7.0-Implementing_Enterprise_Integration_Patterns-en-US.pdf

65 adet tasarım deseni anlatılıyor.

Integration Styles

  • File Transfer
  • Shared Database
  • Remote Procedure Invocation
  • Messaging

Integration Types

  • Informationportal
  • Data Replication
  • Shared Business Function
  • Service Oriented Architecture
  • Distributed Business Process
  • Business-to-Business Integration
  • Tightly Coupled Interaction vs. Loosely Coupled Interaction

Messaging

  • Message Channel
  • Message
  • Pipes and Filters
  • Message Router
  • Message Translator
  • Message Endpoint

Message Channel

  • Point-to-Point Channel
  • Publish-Subscribe Channel
  • Datatype Channel
  • Invalid Message Channel
  • Dead Letter Channel
  • Guaranteed Delivery
  • Channel Adapter
  • Messaging Bridge
  • Message Bus

Message Construction

  • Command Message
  • Document Message
  • Event Message
  • Request-Reply
  • Return Address
  • Correlation Identifier
  • Message Sequence
  • Message Expiration
  • Format Indicator

Message Router

  • Content-Based Router
  • Message Filter
  • Dynamic Router
  • Recipient List
  • Splitter
  • Aggregator
  • Resequencer
  • Composed Message Processor
  • Scatter-Gather
  • Routing Slip
  • Process Manager
  • Message Broker

Message Translator, Message Transformator

  • Envelope Wrapper
  • Content Enricher
  • Content Filter
  • Claim Check
  • Normalizer

Message Endpoint

  • Messaging Gateway
  • Messaging Mapper
  • Transactional Client
  • Polling Consumer
  • Event-Driven Consumer
  • Competing Consumers
  • Message Dispatcher
  • Selective Consumer
  • Durable Subscriber
  • Idempotent Receiver
  • Service Activator

System Management

  • Control Bus
  • Detour
  • Wire Tap
  • Message History
  • Message Store
  • Smart Proxy
  • Test Message
  • Channel Purger

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