Design Pattern - Command Pattern
Command pattern merupakan
data yang diperoleh dari design pattern dan
termasuk kategori Behavioral pattern. Pattern ini bertujuan untuk menangani komunikasi
antar kelas atau objek. Permintaan dari command pattern sendiri dikemas dengan
beberapa pilihan / action dari parameter.
Implementasi
Kita telah memiliki
interface Order dimana ini bertindak
sebagai command. Kita juga telah membuat kelas Stock yang berperan sebagai request. Dan juga telah ada kelas BuyStock dan SellStock dan SellStock
mengimplementasikan antarmuka Order dimana
akan bertindak sebagai proses command. Kelas Broker dibuat sebagai objek invoker. Hal ini bisa mengambil dan
menggantikan Order.
Gambar 1. UML Diagram Command Pattern |
Langkah 1
Membuat antarmuka
command.
Order.java
public interface Order { void execute(); }
Langkah 2
Membuat kelas request.
Stock.java
public class Stock { private String name = "ABC"; private int quantity = 10; public void buy(){ System.out.println("Stock [ Name: "+name+", Quantity: " + quantity +" ] bought"); } public void sell(){ System.out.println("Stock [ Name: "+name+", Quantity: " + quantity +" ] sold"); } }
Langkah 3
Membuat kelas concrete
sebagai implementasi dari Order
interface
BuyStock.java
public class BuyStock implements Order { private Stock abcStock; public BuyStock(Stock abcStock){ this.abcStock = abcStock; } public void execute() { abcStock.buy(); } }
SellStock.java
public class SellStock implements Order { private Stock abcStock; public SellStock(Stock abcStock){ this.abcStock = abcStock; } public void execute() { abcStock.sell(); } }
Langkah 4
Membuat kelas command
invoker.
Broker.java
import java.util.ArrayList; import java.util.List; public class Broker { private List<Order> orderList = new ArrayList<Order>(); public void takeOrder(Order order){ orderList.add(order); } public void placeOrders(){ for (Order order : orderList) { order.execute(); } orderList.clear(); } }
Langkah 5
Gunakan kelas Broker
untuk mengambil dan mengeksekusi commands.
CommandPatternDemo.java
public class CommandPatternDemo { public static void main(String[] args) { Stock abcStock = new Stock(); BuyStock buyStockOrder = new BuyStock(abcStock); SellStock sellStockOrder = new SellStock(abcStock); Broker broker = new Broker(); broker.takeOrder(buyStockOrder); broker.takeOrder(sellStockOrder); broker.placeOrders(); } }
Langkah 6
Verifikasi output.
Stock [ Name: ABC, Quantity: 10 ] bought Stock [ Name: ABC, Quantity: 10 ] sold
Terima kasih :)
Source : ada disini
Comments
Post a Comment