1 / 21

Adapter Facade

Adapter Facade. Surya | 7409040001 Kemal | 7409040003 Fariz | 7409040004 Deny | 7409040012. Adapter. Contoh Penggunaan Adapter. Adapter dalam Programming. Konversi interface dari sebuah class ke interface lain Memaketkan sebuah Class yang ada dengan interface baru

talon
Download Presentation

Adapter Facade

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Adapter Facade Surya | 7409040001 Kemal | 7409040003 Fariz | 7409040004 Deny | 7409040012

  2. Adapter

  3. ContohPenggunaan Adapter

  4. Adapter dalam Programming • Konversi interface darisebuah class ke interface lain • Memaketkansebuah Class yang adadengan interface baru • Mencocokkankomponen lama kesistem yang baru

  5. ContohPenggunaanTanpa Adapter

  6. Dengan Adapter

  7. Kasus Bagaimanamengubahkalkunterlihatsepertiseekorbebek?

  8. Interface pada Duck public interface Duck { public void quack(); public void fly(); } Duckmengimplementasikan suatu interface yang memungkinkan Duckdapat ber –quack dan terbang

  9. Subclass Duck, Mallard Duck public class MallardDuck implements Duck { public void quack() { System.out.println(“Quack”); } public void fly() { System.out.println(“I’m flying”); } }

  10. Interface pada Turkey public interface Turkey { public void gobble(); public void fly(); } Terlihat pada turkey tidak ber-quack tapi ber- gooble dan tidak dapat terbang. Sudah jelas terlihat perbedaan interface

  11. Subclass Turkey, MallardTurkey public class WildTurkey implements Turkey { public void gobble() { System.out.println(“Gobble gobble”); } public void fly() { System.out.println(“I’m flying a short distance”); } }

  12. Problem Interface yang berbedamembuatpenggunaan object Turkey secaralangsungsulit

  13. Class Adapter Pertama, mengimplementasikantipe interface yang kita adapter public class TurkeyAdapter implements Duck { Turkey turkey; public TurkeyAdapter(Turkey turkey) { this.turkey = turkey; } public void quack() { turkey.gobble(); } public void fly() { for(int i=0; i < 5; i++) { turkey.fly(); } } }

  14. Class Adapter public class TurkeyAdapter implements Duck { Turkey turkey; public TurkeyAdapter(Turkey turkey) { this.turkey = turkey; } public void quack() { turkey.gobble(); } public void fly() { for(int i=0; i < 5; i++) { turkey.fly(); } } } Kita membutuhkan referensi ke object yang sedang kita adapter melalui konstruktor

  15. Class Adapter public class TurkeyAdapter implements Duck { Turkey turkey; public TurkeyAdapter(Turkey turkey) { this.turkey = turkey; } public void quack() { turkey.gobble(); } public void fly() { for(int i=0; i < 5; i++) { turkey.fly(); } } } Implementasikan semua method didalam interface. Quack() mentranslate diantara class. Hanya memanggil method gooble().

  16. Test Drive Adapter public class DuckTestDrive { public static void main(String[] args) { MallardDuck duck = new MallardDuck(); WildTurkey turkey = new WildTurkey(); Duck turkeyAdapter = new TurkeyAdapter(turkey); System.out.println(“The Turkey says...”); turkey.gobble(); turkey.fly(); System.out.println(“\nThe Duck says...”); testDuck(duck); System.out.println(“\nThe TurkeyAdapter says...”); testDuck(turkeyAdapter); } static void testDuck(Duck duck) { duck.quack(); duck.fly(); } }

  17. Hasil Test

  18. BagaimanaKlienMenggunakan Adapter • Klien membuat permintaan ke adaptor dengan memanggil method menggunakan interface yang dituju • Adaptor menerjemahkan permintaan ke satu atau lebih panggilan pafa adapter menggunakan interface adapter. • Klien menerima hasil panggilan dan tidak pernah dimana sebuah adapter sedang melakukan penerjemahan.

  19. Pertanyaan • Seberapa “dalam” kita harus adaptasi sistem? Jika sistem terlalu jauh beda? Ada 2 solusi: • Tetap pakai adapter, sesuaikan semua perubahan! • Atau apakah mau mengubah semua client code?

  20. Pertanyaan • Apakah adapter selalu membungkus 1 class saja? • Adapter membungkus satu interface ke interface lain, namun ingat interface bisa diimplementasikan!

  21. Pertanyaan • Bagaimana untuk adapter campuran? • Jika ada sebagian sistem yg harus diubah, tapi bagian lain tidak • Gunakan two way adapter:Semuanya mengimplementasikan interface sistem lama dan baru

More Related