Categories
Algorithms & Design Design Pattern

Command Pattern

EquityShare.java

public class EquityShare {

	private String companyName;
	private double price;
	public EquityShare(String companyName, double price) {
		this.companyName=companyName;
		this.price=price;
	}
	
	public void purchaseEquityShare(){
		System.out.println("purchasing equity share : " + this);
	}

	public void sellEquityShare(){
		System.out.println("selling equity share : " + this);
	}
	
	public String toString(){
		return "[ companyName :"+companyName +", price : "+price+"]";
	}
}

BrokerStaff.java

public class BrokerStaff {

	protected EquityShare equityShare;
	public BrokerStaff() {
		// TODO Auto-generated constructor stub
	}

	
	
	public EquityShare getEquityShare() {
		return equityShare;
	}



	public void setEquityShare(EquityShare equityShare) {
		this.equityShare = equityShare;
	}



	public void executeOrder(String orderType){
		if("purchase".equals(orderType))
			equityShare.purchaseEquityShare();
		else if("sell".equals(orderType))
			equityShare.sellEquityShare();
	}
}

CommandPatternDemo.java

public class CommandPatternDemo {

	public CommandPatternDemo() {
		// TODO Auto-generated constructor stub
	}

	public static void main(String[] args) {

		//details of Equity Shares
		EquityShare techSoft = new EquityShare("TECHSOFT",1000);
		EquityShare roboSoft = new EquityShare("ROBOSOFT",1500);
		EquityShare radioSoft = new EquityShare("RADIOSOFT",400);
		
		//Get the Broker Staff
		BrokerStaff broker = new BrokerStaff();
		
		//purchase techsoft
		broker.setEquityShare(techSoft);
		broker.executeOrder("purchase");
		
		//sell robosoft
		broker.setEquityShare(roboSoft);
		broker.executeOrder("sell");
		
		//purchase radiosoft
		broker.setEquityShare(radioSoft);
		broker.executeOrder("purchase");
		
	}

}

Output

Leave a comment

Design a site like this with WordPress.com
Get started