design pattern new

19
DESIGN PATTERN DESIGN PATTERN

Upload: api-3806259

Post on 07-Jun-2015

479 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Design Pattern New

DESIGN PATTERNDESIGN PATTERN

Page 2: Design Pattern New

LATAR BELAKANGLATAR BELAKANG

• Design Pattern mulai dikenal pada Design Pattern mulai dikenal pada awal tahun 1980an awal tahun 1980an MVC for MVC for SmalltalkSmalltalk

• MVC (Model-View-Controller) :MVC (Model-View-Controller) :

Page 3: Design Pattern New

Latar Belakang (lanj..)Latar Belakang (lanj..)

• Design Pattern mulai digunakan Design Pattern mulai digunakan secara formal di awal tahun 1990an secara formal di awal tahun 1990an oleh Helm(1990) dan Erich oleh Helm(1990) dan Erich Gamma(1992).Gamma(1992).

Page 4: Design Pattern New

PengertianPengertian

• Menurut Christopher Alexander, 1977Menurut Christopher Alexander, 1977 : :““Masing-masing pattern mendeskripsikan suatu Masing-masing pattern mendeskripsikan suatu problem yang terjadi lagi dan lagi dalam lingkungan problem yang terjadi lagi dan lagi dalam lingkungan dan kemudian mendeskripsikan inti dari solusi dan kemudian mendeskripsikan inti dari solusi permasalahan tersebut,sehingga kita dapat permasalahan tersebut,sehingga kita dapat menggunakan solusi ini berulang kali tanpa menggunakan solusi ini berulang kali tanpa melakukan hal yang sama dua kalimelakukan hal yang sama dua kali ” ”

• “Design patterns merupakan solusi yang berulang kali digunakan untuk memecahkan masalah desain yang sering kali ditemui”(et. al., 1998).

• ”Design Pattern merupakan suatu kumpulan aturan yang mendeskripsikan bagaimana menyelesaikan masalah-masalah dalam bidang pengembangan perangkat lunak”. (Pree, 1994)

Page 5: Design Pattern New

Good patternGood pattern

A good pattern shouldA good pattern should

•Be as general as possibleBe as general as possible

•Contain a solution that has been Contain a solution that has been proven to effectively solve the proven to effectively solve the problem in the indicated contextproblem in the indicated context

Page 6: Design Pattern New

4 Elemen Penting dalam DP 4 Elemen Penting dalam DP ::• nama nama

Untuk membedakan pattern yang satu dengan Untuk membedakan pattern yang satu dengan pattern yang lainpattern yang lain

• problemproblemMenjelaskan kapan mengaplikasikan pattern dari Menjelaskan kapan mengaplikasikan pattern dari batasan problem dan context yang adabatasan problem dan context yang ada

• solutionsolutionMendeskripsikan element untuk membuat design, Mendeskripsikan element untuk membuat design, relationship, responsibility dan collaborationrelationship, responsibility dan collaboration

• Consequences Consequences hasil dari pengaplikasian patternhasil dari pengaplikasian pattern

Page 7: Design Pattern New

Kategori Design PatternsKategori Design Patterns

• Berdasarkan scope/ruang lingkupBerdasarkan scope/ruang lingkup : : class levelclass level

Mengidentifikasi hubungan antar-class Mengidentifikasi hubungan antar-class yang didefinisikan pada saat compile-yang didefinisikan pada saat compile-time dan cenderung lebih statistime dan cenderung lebih statis

Object levelObject levelMendeskripsikan hubungan yang dapat Mendeskripsikan hubungan yang dapat berubah pada saat run time sehingga berubah pada saat run time sehingga sifatnya lebih dinamissifatnya lebih dinamis

Page 8: Design Pattern New

Kategori Design PatternsKategori Design Patterns (lanj..)(lanj..)• Berdasarkan tujuannyaBerdasarkan tujuannya : :

Creational PatternsCreational PatternsAdalah patterns yang terkait dengan proses instalasi atau Adalah patterns yang terkait dengan proses instalasi atau konstruksi objek. Pada umumnya creational pattern konstruksi objek. Pada umumnya creational pattern memisahkan operasi suatu aplikasi dari bagaimana objeknya memisahkan operasi suatu aplikasi dari bagaimana objeknya diciptakandiciptakan.. lebih menekankan pada proses instansiasi objek. lebih menekankan pada proses instansiasi objek.

Structural PatternsStructural Patternspattern yang berkaitan dengan penyusunan class dan objek pattern yang berkaitan dengan penyusunan class dan objek untuk membentuk struktur yang lebih besar. Untuk menyusun untuk membentuk struktur yang lebih besar. Untuk menyusun struktur yang lebih besar, struktural pattern banyak struktur yang lebih besar, struktural pattern banyak menggunakan inheritance dan aggregation.menggunakan inheritance dan aggregation.

Behavioral PatternsBehavioral Patternsditujukan untuk mengatasi permasalahan yang muncul ketika ditujukan untuk mengatasi permasalahan yang muncul ketika kita akan menetapkan class responsibility dan algoritma.kita akan menetapkan class responsibility dan algoritma. Behavioral design pattern tidak hanya merekomendasikan Behavioral design pattern tidak hanya merekomendasikan hubungan statis tertentu antara objek dan class tetapi juga hubungan statis tertentu antara objek dan class tetapi juga menguraikan bagaimana objek-objek tersebut berkomunikasi. menguraikan bagaimana objek-objek tersebut berkomunikasi.

Page 9: Design Pattern New

Kategori Design PatternsKategori Design Patterns (lanj..)(lanj..)

Page 10: Design Pattern New

Creational PatternCreational Pattern

•Factory Method

•Abstract Factory Method

•Builder Pattern

•Prototype Pattern

•Singleton Pattern

Page 11: Design Pattern New

Singleton PatternSingleton Pattern

• dapat digunakan untuk memastikan bahwa hanya dapat digunakan untuk memastikan bahwa hanya ada sebuah instance suatu class yang diciptakan.ada sebuah instance suatu class yang diciptakan.

• Model Logic Singleton PatternModel Logic Singleton PatternModel untuk menggambarkan Singleton sangat Model untuk menggambarkan Singleton sangat mudah dipahami karena hanya ada satu mudah dipahami karena hanya ada satu Singleton instance. Client mengakses Singleton Singleton instance. Client mengakses Singleton instance melalui satu akses point yang diketahui. instance melalui satu akses point yang diketahui. Client dalam kasus ini adalah objek yang Client dalam kasus ini adalah objek yang membutuhkan akses untuk satu instance dari membutuhkan akses untuk satu instance dari Singleton.Singleton.

Page 12: Design Pattern New

Singleton Pattern(lanj..)Singleton Pattern(lanj..)

• Model Fisik Singleton PatternModel Fisik Singleton Pattern

Model fisik dari Singleton juga sangat Model fisik dari Singleton juga sangat mudah dipahami. Gambar di bawah mudah dipahami. Gambar di bawah ini menunjukkan UML model dari ini menunjukkan UML model dari Singleton Pattern dalam bentuk class Singleton Pattern dalam bentuk class diagramdiagram

Page 13: Design Pattern New

• public class ClassicSingleton {public class ClassicSingleton {   private static ClassicSingleton instance = null;   private static ClassicSingleton instance = null;

   protected ClassicSingleton() {   protected ClassicSingleton() {      // Exists only to defeat instantiation.      // Exists only to defeat instantiation.   }   }   public static ClassicSingleton getInstance() {   public static ClassicSingleton getInstance() {      if(instance == null) {      if(instance == null) {         instance = new ClassicSingleton();         instance = new ClassicSingleton();      }      }      return instance;      return instance;   }   }} }

Page 14: Design Pattern New

Struktural PatternStruktural Pattern

•Adapter

•Bridge

•Composite

•Decorator

•Façade

•Flyweight

•Proxy

Page 15: Design Pattern New

Behavioral PatternBehavioral Pattern

• Observer• Mediator• Chain of Responsibility• Template• Interpreter• Strategy• Visitor• State• Command• Iterator

Page 16: Design Pattern New

How to Select & Use Design How to Select & Use Design PatternsPatterns

How to Select (> 20 in the book, and still growing … fast?, more on Internet)

• Scan Intent SectionsScan Intent Sections

• Study How Patterns InterrelateStudy How Patterns Interrelate

• Study Patterns of Like PurposeStudy Patterns of Like Purpose

• Examine a Cause of RedesignExamine a Cause of Redesign

• Consider What Should Be Variable in Your DesignConsider What Should Be Variable in Your Design

Page 17: Design Pattern New

How to Use

•Read the pattern once through for an overview: Read the pattern once through for an overview: appears trivial, but notappears trivial, but not

•Go back and study the structure, participants, and Go back and study the structure, participants, and collaborations sectionscollaborations sections

•Look at Sample Code: Look at Sample Code: concrete example of pattern in concrete example of pattern in codecode

•Choose names for pattern participantsChoose names for pattern participants

•Define the classesDefine the classes

•Define application specific names for operations in Define application specific names for operations in the patternthe pattern

• Implement the operations to carry out the Implement the operations to carry out the responsibilities and collaborations in the patternresponsibilities and collaborations in the pattern

Page 18: Design Pattern New

Yang perlu diingat adalah meskipun design Yang perlu diingat adalah meskipun design pattern itu adalah solusi yang umum, pattern itu adalah solusi yang umum, design pattern tersebut hanyalah solusi design pattern tersebut hanyalah solusi untuk satu masalah spesifik. untuk satu masalah spesifik.

Tiap design pattern mempunyai cakupan Tiap design pattern mempunyai cakupan tersendiri, dan terkadang ada masalah yang tersendiri, dan terkadang ada masalah yang hanya bisa diselesaikan dengan gabungan hanya bisa diselesaikan dengan gabungan dari beberapa design pattern sekaligus atau dari beberapa design pattern sekaligus atau ada pula masalah yang hanya bisa ada pula masalah yang hanya bisa diselesaikan secara non-pattern (meski diselesaikan secara non-pattern (meski jarang). jarang).

Page 19: Design Pattern New

Referensi BukuReferensi Buku

• Design Patterns : Elements of Reusable Object-Design Patterns : Elements of Reusable Object-Oriented Software (1995)Oriented Software (1995)– (The-Gang-of-Four Book)(The-Gang-of-Four Book)– The-Gang-of-Four (GoF) - Gamma, Helm, The-Gang-of-Four (GoF) - Gamma, Helm,

Johnson , VlissidesJohnson , Vlissides

• Analysis Patterns - Reusable Object Models Analysis Patterns - Reusable Object Models (1997)(1997)– Martin FowlerMartin Fowler