Intro to Design Pattern

advertisement
Gita Indah Marthasari
1




Mahasiswa mengetahui sejarah kemunculan
pattern dan desain pattern
Mahasiswa mampu menjelaskan tujuan
penggunaan desain pattern
Mahasiswa mampu menjelaskan
pengelompokan dan perbedaan tiap
kelompok desain pattern
Mahasiswa mampu menggambarkan class
diagram UML
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
2

The first among a dozen definitions in
Webster's Ninth New Collegiate is this:
 A form or model proposed for imitation

As currently used in the software industry:
 A pattern is a description of a common problem and
a likely solution, based on experience with similar
situations. (Mitchell, 2003)
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
3

Christopher Alexander proposed in the 1970s that
visually pleasing and practical structures for a certain
application and/or setting could be described by a
pattern language.

For example, Alexander wrote that desirable
farmhouses in the Bernese Oberland area of
Switzerland used these patterns:





North South Axis
West Facing Entrance Down The Slope
Two Floors
Hay Loft At The Back
Bedrooms In Front
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
4


Alexander claimed that following these
patterns when designing a farmhouse
produces a structure that blends with the
environment and the community, and has the
"Quality Without A Name".
Alexander further claimed that a pattern
language permits a great variety of buildings
to be designed that meet a particular need.
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
5
In 1987, Kent Beck and Ward Cunningham presented
an OOPSLA paper titled Using Pattern Languages for
Object-Oriented Programs.
 It described a project that applied Alexander's work to
the problem of user-interface design in which the
eventual users of a system designed the interface
guided by these patterns:






Window Per Task
Few Panes Per Window
Standard Panes
Short Menus
Nouns and Verbs
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
6


In the late 1980s and early 1990s a number of
individuals began to look at the problem of
identifying and describing patterns used to
create software
In 1995 the now-classic text Design Patterns
by Erich Gamma, Richard Helm, Ralph
Johnson, and John Vlissides was published.
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
7



In art, a pattern is the composition or plan of
a work of graphic or plastic art.
In architecture, a pattern is an architectural
design or style.
In psychology, a pattern is a thinking
mechanism that is basic to the brain’s
operation, helping one to perceive things
quickly
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
8




In dressmaking, a pattern is a pleasing shape
that is applied repeatedly.
In decorating, a pattern is a design or figure
appearing in furniture or an accessory.
In manufacturing, a pattern is the shape or
style of a manufactured form.
In chess, a pattern is a set of moves that may
be applied in an overall strategy
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
9


For architectural pattern, we see certain
physical elements repeated endlessly,
combined in an almost endless variety of
combinations
To find out what it really is that is repeating
there we need to look more carefully
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
10

Analisis dan desain berorientasi objek
(ADBO) bergantung pada classes and objects
sebagai komponen dasar sistem.

These classes and objects form patterns with
specific relationship between them.

Groups of classes in an object-oriented
environment are likely to be useful
repeatedly
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
11

Pada pengembangan sistem pemantau suhu :
 Sistem yang menggunakan sensor suhu untuk
memantau temperatur sebuah hardware.
 Misalnya, model sensor pertama yang digunakan :
TempTek, Inc. TS7000 sensors.
 Kode untuk mengakses suhu menggunakan sensor
TempTek dalam Java :
class TS7000 {
native double getTemp();
...
}
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
12
 Berikut kode untuk menghitung rata-rata suhu
dari sensor :
double sum = 0.0;
for (int i = 0; i < sensors.length; i++)
sum += sensors[i].getTemp();
double meanTemp = sum / sensors.length;
Variabel sensors dideklarasikan sbg array of TS7000
objects.
(TS7000 sensors[ ] = new TS7000[...])
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
13
 Berikutnya, andaikan akan dipakai model sensor
kedua yang digabungkan dengan model sebelumnya,
misalnya dari vendor Thermon.
 Kelas Thermon :
class SuperTempReader {
//NOTE: temperature is Celsius tenths
of a degree
//
native double current_reading();
...
}
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
14

Kode setelah penambahan tipe sensor :
for (int i = 0; i < sensors.length; i++)
{
if (sensors[i] instanceof TS7000)
sum += ((TS7000)sensors[i]).getTemp();
else
// Must be a SuperTemp!
sum +=
((SuperTempReader)sensors[i]).current_re
ading() * 10;
}
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
15

In this case sensors is an array of Objects. The
type is tested with instanceof and an
appropriate cast and method call is
performed.
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
16

Persoalan potensial :
 Jika ada sensor dari vendor berbeda yang ingin
digabungkan.
 Sensor berbeda mungkin memiliki cara
penggunaan yang berbeda, misalnya cara
menjalankan, konversi nilai output, dll.


Prinsip OO Design : Program should open
for extension but close for modification.
Solusi : ADAPTER PATTERN
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
17
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
18

A Design Pattern is essentially :
 A description of a commonly occurring object-
oriented design problem and how to solve it.
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
19
Purpose
Creational :
pembuatan objek
Structural : komposisi
kelas dan objek
Scope
Class : melibatkan
pewarisan
Object : melibatkan
komposisi
Behavioral : interaksi
antara kelas dan objek
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
20
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
21
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
22
A developer with training in object-oriented design
would probably produce a similar solution without
much effort.
 What's the real contribution of design patterns?

 Simply having a name for a solution provides a real
benefit:

A developer might say
"Let's use an ADAPTER."
rather than
"How about a superclass with a getTemperature method
and then subclass that with classes that reference
instances of the vendor-supplied classes for...."
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
23


For a while "pattern" was essentially
synonymous with "object oriented design
pattern" but the meaning has broadened.
In the literature you can now find "patterns" for:
 High-level application architecture
 User interfaces
 Software testing
 Project organization and management
 Web sites, etc
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
24
1.
2.
3.
Tuliskan awal mula munculnya desain
pattern
Tuliskan tujuan penggunaan desain pattern
Gambarkan class diagram untuk kelas Inbox
dan SentBox berikut :
Atribut
Method
Inbox
-pesanMasuk
-tglMasuk
+bacaPesan()
+kirimPesan()
Sentbox
-pesanKeluar
-tglKeluar
+bacaPesan()
+terimaPesan()
Jurusan Teknik Informatika
Fakultas Teknik
Univ. Muhammadiyah Malang
25
Download