Skip to main content

Gang of Four (GoF) - Design Pattern

Gang of Four (GoF) adalah sebuah kelompok dari empat orang penulis terkenal dari buku "Design Patterns: Elements of Reusable Object-Oriented Software" yang diterbitkan pada tahun 1994. Empat orang tersebut adalah:

  1. Erich Gamma: Erich Gamma adalah seorang insinyur perangkat lunak asal Swiss yang telah berkontribusi dalam bidang rekayasa perangkat lunak dan komputer. Dia juga berperan dalam pengembangan lingkungan pengembangan perangkat lunak Eclipse dan bersama-sama menciptakan pola desain seperti Singleton dan Observer.
  2. Richard Helm: Richard Helm adalah seorang ilmuwan komputer yang berasal dari Kanada. Dia memiliki latar belakang dalam rekayasa perangkat lunak dan juga merupakan kontributor dalam pengembangan lingkungan pengembangan perangkat lunak Eclipse bersama dengan Erich Gamma.
  3. Ralph Johnson: Ralph Johnson adalah seorang profesor ilmu komputer di Universitas Illinois, Urbana-Champaign, Amerika Serikat. Ia juga memiliki kontribusi dalam pengembangan lingkungan pengembangan perangkat lunak Eclipse dan menjadi salah satu penulis dalam buku "Design Patterns."
  4. John Vlissides: John Vlissides, juga dikenal sebagai "Uncle Viss," adalah seorang insinyur perangkat lunak Amerika Serikat dengan latar belakang dalam rekayasa perangkat lunak. Dia merupakan salah satu kontributor dalam pengembangan lingkungan pengembangan perangkat lunak Eclipse dan turut menjadi salah satu penulis dalam buku "Design Patterns."

Buku "Design Patterns: Elements of Reusable Object-Oriented Software" yang ditulis oleh Gang of Four telah menjadi acuan utama dalam dunia pengembangan perangkat lunak dan telah mempengaruhi banyak praktisi dan pengembang dalam menghadapi tantangan desain perangkat lunak secara efisien dan efektif.

Berikut adalah daftar 23 pola desain dari "Gang of Four" dengan pengkategorian sesuai jenisnya:

  1. Creational Patterns (Pola Desain Pembuatan):
    1.    Factory Method Pattern
    2.    Abstract Factory Pattern
    3.    Singleton Pattern
    4.    Prototype Pattern
    5.    Builder Pattern
  2. Structural Patterns (Pola Desain Struktural):
    1.    Adapter Pattern
    2.    Bridge Pattern
    3.    Composite Pattern
    4.    Decorator Pattern
    5.    Facade Pattern
    6.    Flyweight Pattern
    7.    Proxy Pattern
  3. Behavioral Patterns (Pola Desain Perilaku):
    1.    Chain of Responsibility Pattern
    2.    Command Pattern
    3.    Interpreter Pattern
    4.    Iterator Pattern
    5.    Mediator Pattern
    6.    Memento Pattern
    7.    Observer Pattern
    8.    State Pattern
    9.    Strategy Pattern
    10.    Template Method Pattern
    11.    Visitor Pattern

Setiap kategori memiliki pola desain yang berfokus pada jenis permasalahan tertentu. Pola desain creational berkaitan dengan pembuatan objek, structural berfokus pada struktur komposisi objek, sedangkan behavioral berurusan dengan hubungan dan perilaku antara objek. Menggunakan pola desain dengan tepat dapat membantu dalam menghadapi masalah desain perangkat lunak secara efisien dan meningkatkan kualitas kode yang dihasilkan.




Comments

Popular posts from this blog

Numpang Kerja Remote dari Bandung Creative Hub

Semalam kemarin (09 Januari 2019) tidak sengaja kami sekeluarga lewat Bandung Digital Hub saat pulang dari Fish Wow Cheeseee  yang di Jl. Lombok. Bandung Digital Hub ini sendiri berlokasi tidak jauh dari dari tempat kami makan tersebut, yaitu berlokasi di Jl. Laswi No.7, Kacapiring, Batununggal, Kota Bandung, Jawa Barat 40271. Berhubung untuk bulan Januari 2019 ini sedang tidak masuk ke kantor maka saya putuskan untuk besoknya (hari ini 09 Januari 2019) nyoba untuk bekerja remote dari Bandung Digital Hub , apalagi istri yang kebetulan follower pak Ridwan Kamil di Instagram juga Facebook dan tampaknya pernah lihat ulasan mengenai tempat ini sehingga tampak antusias supaya saya datang ketempat ini ini dan mencoba bekerja dari gedung creative hub dan coworking yang keren ini.  Tempat Parkir Masalah utama saat kita datang ke coworking space terutama yang berlokasi di Bandung (atau mungkin kota-kota lainnya) adalah lahan parkir, kadang lahan parkir ...

Numpang Kerja Remote dari Bandung Digital Valley

Satu lagi co-working place  gratisan dan keren yang cukup populer dikota Bandung, co-working place yang juga memberikan fasilitas tempat kerja (co-working place) dan fitur-fitur menarik lainnya,  co-working place keren  ini adalah Bandung Digital Valley atau yang sering disingkat BDV . C o-working place  Bandung Digital Valley ini  merupakan bagian dari Telkom , mulai aktif digunakan dari sekitar tahun 2012 lalu .  Tempat ini biasanya menjadi tempat favorit bagi para pengiat startup, freelancer, dan mahasiswa . Gedung BDV Gedung BDV Gedung BDV Co-working space Bandung Digital Valley ini sendiri berlokasi di Menara Bandung Digital Valley, Jl. Gegerkalong Hilir No.47, Sukarasa, Sukasari, Kota Bandung, Jawa Barat, detailnya bisa dilihat di Google map berikut. Pemandangan jalan setelah pintu satpam. Free Co-working Space Membership Untuk mulai menggunakan fasilitas co-working space ini secara gratis maka yang pe...

Membuat Authentikasi Berbasis Token pada Spring Boot dengan Spring Security dan JWT

Setelah beberapa kali mencari tutorial tentang otentikasi aplikasi web Spring Boot dengan menggunakan JWT yang mudah dipahami akhirnya saya menemukan artikel berbahasa Inggris tapi sangat mudah dipahami  dan diikuti, artikel tersbut berada disini , dengan judul " Spring Boot Token based Authentication with Spring Security & JWT ". Untuk memudahkan orang-orang yang terbiasa membaca artikel dalam bahasa indonesia (termasuk saya sendiri), artikel ini saya buat dan susun ulang (artikel aslinya tidak tertulis dengan runtut dan dapat membuat pemula bingung dengan berbagai error yang muncul) supaya lebih mudah untuk diikuti dan dapat di gunakan bersama. Applikasi yang akan kita buat adalah aplikasi web yang setiap endpoint-nya hanya bisa di akses oleh role tertentu. 1. Tools Yang Diperlukan IntelliJ Idea text editor. Spring Assistant Plugin. Postman. PostgreSQL + DBeaver. Min Java 8 Spring Boot 2.1.8 (dengan Spring Security, Spring Web, Spring Data JPA). jjwt 0.9.1. Maven 3.6.1....