Abstract & Interface GOF Design Pattern

Slides:



Advertisements
Presentasi serupa
Pemrograman Berorientasi Objek
Advertisements

ABSTRACT CLASS Imam Fahrur Rozi.
Abstract Class & Interface
Pemrograman JAVA (TIB09)
Inheritance.
Modul 1- Review Java.
Inheritance Ery Setiyawan Jullev A.
Pola-Pola Perancangan/ Design Patterns
Advanced Class 2 Pertemuan 11 Pemrograman Berbasis Obyek Oleh Tita Karlita.
Pemrograman Berbasis Obyek
Encapsulation, Inheritance, polymorphism, dan interface
INHERITANCE, POLYMORPHISM, DAN INTERFACE
Inheritance (Pewarisan)
ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM
Class, Inheritance, Encapsulation & Interface
Pemrograman Berorientasi Obyek Oleh Tita Karlita
Pertemuan : Object Oriented Programming
OBJECT ORIENTED PROGRAMMING YANES HARDIANTO SUI Politeknik Manufaktur Astra 2011.
Pemrograman Berorientasi Obyek dengan JAVA Interface
Pemrograman Berorientasi Obyek1 Sejarah C – Martin Richard -> Bahasa Pemrograman BCPL 1970 – Ken Thomson (Bell Lab) -> Bahasa B yang membuat Unix.
Object Oriented Programming with JAVA 2011/2012
Inheritance Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 4 Tahun : 2008 Versi : 1/0.
Inheritance, polymorphism, dan interface
Advanced Class Features 2
Kelas Lanjut 2 Oleh Tita Karlita.
INHERITANCE (Oleh : Nur Hayatin, S.ST)
Perancangan Sistem Informasi Berorientasi Object
Algoritma &Pemrograman 1
Pertemuan 6 PEWARISAN AND POLYMORPHISM
Polymorphism Pertemuan 9 Matakuliah: M0864/Programming I Tahun: 2009.
Pengenalan Design Pattern
The Strategy Pattern.
Analisis dan Perancangan Berorientasi Objek (OOAD)
POLYMORPHISM, ABSTRACT CLASS DAN INTERFACE
Perancangan dan Pemrograman Web
Praktikum Class Abstract dan Interface
Access Modifier.
Inheritance dan Kata Kunci static
Outline: Pewarisan/Inheritance Polymorphism
POLYMORPHISM, ABSTRACT CLASS DAN INTERFACE
Pewarisan Disusun Oleh: Reza Budiawan Untuk:
Intro to OOP Yesi Novia, S.Kom.
Abstract Class.
Outline: Abstract Class Interface Boxing dan Unboxing
POLYMORPHISM.
Algoritma & Pemrograman 1
ABSTRACT CLASS DAN INTERFACE
PROSES REKAYASA PERANGKAT LUNAK
Association, Composition dan Inheritance
ADBO (Analisa Desain Berorientasi Obyek)
Pemrograman Berorientasi Objek
PENGANTAR UML Citra N., S.Si, MT UNIKOM.
Matakuliah : M0864/Programming I
SDLC (System Development Life Cycle)
REKAYASA PERANGKAT LUNAK
Inheritance (Turunan)
INHERITANCE SUSSI.
ABSTRACT CLASS DAN INTERFACE
Praktikum 02 konstruksi class
Pewarisan (Inheritance)
Statechart , Class, Component & Deployment Diagram
Statechart , Class, Component & Deployment Diagram
Subclassing and Inheritance
Object Oriented Programming
Perkembangan Teknik Pemrograman
Pemrograman berorientasi objek
TIM RPL Program Studi Teknik Informatika
Pemrograman Berorientasi Objek
Building Information Systems
DPH1C4 Pemrograman berorientasi Obyek
Transcript presentasi:

Abstract & Interface GOF Design Pattern Tim Asisten Praktikum PSBO 08/09

hewan-hewan jadi objek? Once upon a time.. Buat program tentang simulasi hewan untuk anak sayaa! Boss besar Yawda, desain dulu aja.. Aha! Gimana kalo bikin hewan-hewan jadi objek?

1. Lihat atribut dan behaviour! picture food hunger boundaries location Behaviour makeNoise() eat() sleep() roam()

Do all animals eat the same way? 2. Buat class SUPERCLASS SUBCLASS Do all animals eat the same way?

3. Subclass memiliki behaviour yang lebih spesifik. Jadi, Kedua method ini akan dioverride, sementara dua method yang lain akan tetap generic..

4. Lihat kesamaan behaviour yang lain..

Class Hierarchy

? ? ? ? ? ?

.. Some classes just should not be instantiated!

Abstract Class Tidak dapat diinstantiasi -> superclass Class yang berisi satu atau lebih abstract method Jika suatu kelas memiliki abstract method, maka kelas tersebut harus didefinisikan sebagai abstract class Subclass harus mengimplementasikan abstract method superclassnya (abstract class)

Abstract Method Method yang tidak memiliki body Harus di override oleh subclassnya Constructor dan static method tidak boleh abstract Harus diimplementasikan oleh method dari subclass

draw{abstract}() : void Sooo.. Abstract.. Shape draw{abstract}() : void Segitiga draw() : void SegiLima draw() : void SegiEmpat draw() : void

Sintaks Abstract Class Abstract Method [ClassModifier] abstract class [ClassName] contoh : public abstract class Shape{ } Abstract Method [Modifier] abstract [ReturnType][MethodName] ([parameter]) public abstract void draw();

Sintaks Subclass (pengguna abstract) [ClassModifier] class [ClassName] extends [AbstractClass] contoh : public class Segitiga extends Shape{ }

Another case..

..semua anggota abstract class adalah abstract method? What if.. ..semua anggota abstract class adalah abstract method?

Interface Interface adalah abstract class yang seluruh methodnya adalah abstract method. Variabel dari interface selalu static dan final. Bukan class, tapi prototype untuk class (yang nanti akan mengimplementasikan) Sebuah class dapat mengimplementasikan lebih dari satu interface.

Interface sebagai Tipe Data Dapat digunakan sebagai variabel sebuah class Dapat digunakan sebagai parameter

Sintaks Membuat interface : Menggunakan interface : interface [InterfaceName] Contoh : interface Animal Menggunakan interface : [ClassModifier] class [ClassName] implements [InterfaceName] public class Cat implements Animal

Pewarisan antar interface Interface dapat mewarisi interface lainnya Contoh : interface Animal{ /*some code*/ } interface Mammal extends Animal {

Class Diagram

Latihan Refer to labwork_05.pdf

Rational Objectory Software Engineering Process Its goal is to ensure : the production of high-quality software meeting the needs of its end-users within a predictable schedule and budget

Objectory Objectory adalah suatu proses iterasi atau bisa juga diartikan sebagai suatu proses terkontrol Jadi objectory adalah proses iterasi terkontrol Objectory focus pada arsitektur dari sistem Aktifitas pengembangan objectory diarahkan oleh use case, object oriented proses, penggunaan UML sebagai pemodelan dan bisa di konfigurasi untuk menentukan ruang lingkup suatu project

Objectory (cont) Objectory proses dibagi menjadi 4 phase yang membentuk pola pengembangan cycle Inception phase/ fase permulaan Elaboration phase/ fase perluasan Construction phase/ fase pembentukan Transition phase/ fase transisi

Objectory (cont) Setiap fase di tutup oleh suatu milestone, yaitu suatu keadaan di mana beberapa keputusan critical harus dibentuk

Once upon a time.. (AGAIN) Bagus juga desain Animalmu!  Sekarang.. ..tolong bikinin simulai bebek2an buat anak kedua saya.. Boss besar

What do you think about this design?

Design Pattern Muncul masalah ketika membuat program OOP : Handle Object Perubahan pada sistem Bagaimana biasanya programmer mengatasi masalah? Some say, “Pengalaman! Semakin banyak pengalaman seorang designer software, semakin elegant, simple dan flexible-lah code-nya. ” New problem : TIME

Design Pattern Solusi yang sama untuk problem yang sama yang berulang-ulang Learning curve yang hanya bisa didapat dari pengalaman dapat di kurangi

GoF Design Pattern Gank of Four (GoF) : Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides “Design Patterns: Elements of Reusable Object-Oriented Software”

GoF Design Pattern Creational (C) Factory Method, Abstract Factory, Builder, Singleton, Prototype Structural (S)  Decorator, Composite, Proxy, Adapter, Bridge, Flyweight, Façade  Behavioral (B)  Strategy, Iterator, Template Method, Mediator, Observer, Chain of Responsibility, Memento, Command, State, Visitor, Interpreter

Strategy Pattern Motivation "Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from the clients that use it." [Gamma, p315] Capture the abstraction in an interface, bury implementation details in derived classes

Structure

Contoh

GOF Design Pattern ..to be continue..