Fakultas Ilmu Komputer UI

Skip to content
Snippets Groups Projects
Commit b75205be authored by Yusuf Khadafi's avatar Yusuf Khadafi
Browse files

cor

parent ce3d0350
No related branches found
No related tags found
No related merge requests found
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="08f09449-6cd3-4391-9082-965592011134" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
</list>
<list default="true" id="08f09449-6cd3-4391-9082-965592011134" name="Changes" comment="" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
......@@ -41,18 +38,19 @@
"keyToString": {
"RunOnceActivity.OpenProjectViewOnStart": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"last_opened_file_path": "C:/Users/pusilkom/Documents/Projects/head-first-design-patterns/src/design/patterns/behavioural/observer"
"last_opened_file_path": "C:/Users/pusilkom/Documents/Projects/head-first-design-patterns/src/design/patterns/behavioural/chainofresponsibility"
}
}]]></component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Users\pusilkom\Documents\Projects\head-first-design-patterns\src\design\patterns\behavioural\chainofresponsibility" />
<recent name="C:\Users\pusilkom\Documents\Projects\head-first-design-patterns\src\design\patterns\behavioural\observer" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="design.patterns.behavioural.strategy" />
</key>
</component>
<component name="RunManager" selected="Application.WeatherStation">
<component name="RunManager" selected="Application.MoneyChangerOld">
<configuration name="Main" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="Main" />
<module name="head-first-design-patterns" />
......@@ -60,6 +58,19 @@
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="MoneyChangerOld" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="design.patterns.behavioural.chainofresponsibility.MoneyChangerOld" />
<module name="head-first-design-patterns" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="design.patterns.behavioural.chainofresponsibility.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="WeatherStation" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="design.patterns.behavioural.observer.WeatherStation" />
<module name="head-first-design-patterns" />
......@@ -88,6 +99,7 @@
</configuration>
<recent_temporary>
<list>
<item itemvalue="Application.MoneyChangerOld" />
<item itemvalue="Application.WeatherStation" />
<item itemvalue="Application.design.patterns.behavioural.strategy.Main" />
<item itemvalue="Application.Main" />
......
package design.patterns.behavioural.chainofresponsibility;
public class FiftyHandler implements Handler {
private Handler nextHandler;
private int denomination = 50;
public void setNextHandler(Handler handler){
this.nextHandler = handler;
}
@Override
public void handle(int balance) {
int amountOfBill = balance / denomination;
int remainder = balance % denomination;
if(remainder > 0){
this.nextHandler.handle(remainder);
}
System.out.println(amountOfBill + " piece of $" + denomination);
}
}
package design.patterns.behavioural.chainofresponsibility;
public class FiveHandler implements Handler {
private Handler nextHandler;
private int denomination = 5;
public void setNextHandler(Handler handler){
this.nextHandler = handler;
}
@Override
public void handle(int balance) {
int amountOfBill = balance / denomination;
int remainder = balance % denomination;
if(remainder > 0){
this.nextHandler.handle(remainder);
}
System.out.println(amountOfBill + " piece of $" + denomination);
}
}
package design.patterns.behavioural.chainofresponsibility;
public interface Handler {
void handle(int balance);
}
package design.patterns.behavioural.chainofresponsibility;
public class HundredHandler implements Handler {
private Handler nextHandler;
private int denomination = 100;
public void setNextHandler(Handler handler){
this.nextHandler = handler;
}
@Override
public void handle(int balance) {
int amountOfBill = balance / denomination;
int remainder = balance % denomination;
if(remainder > 0){
this.nextHandler.handle(remainder);
}
System.out.println(amountOfBill + " piece of $" + denomination);
}
}
package design.patterns.behavioural.chainofresponsibility;
public class MoneyChanger {
public static void main(String[] args){
HundredHandler hundredHandler = new HundredHandler();
FiftyHandler fiftyHandler = new FiftyHandler();
TenHandler tenHandler = new TenHandler();
FiveHandler fiveHandler = new FiveHandler();
OneHandler oneHandler = new OneHandler();
hundredHandler.setNextHandler(fiftyHandler);
fiftyHandler.setNextHandler(tenHandler);
tenHandler.setNextHandler(fiveHandler);
fiveHandler.setNextHandler(oneHandler);
System.out.println("You got:");
hundredHandler.handle(126);
}
}
package design.patterns.behavioural.chainofresponsibility;
public class MoneyChangerOld {
public static void main(String[] args){
denominateMoney(125);
}
public static void denominateMoney(int amount){
int currentBillAmount = amount;
int amountOfHundredBill = currentBillAmount / 100;
currentBillAmount = currentBillAmount % 100;
int amountOfFiftyBill = currentBillAmount / 50;
currentBillAmount = currentBillAmount % 50;
int amountOfTenBill = currentBillAmount / 10;
currentBillAmount = currentBillAmount % 10;
int amountOfFiveBill = currentBillAmount / 5;
currentBillAmount = currentBillAmount % 5;
int amountOfOneBill = currentBillAmount / 1;
currentBillAmount = currentBillAmount % 1;
if(currentBillAmount > 0){
System.out.println("Failed to denominate. Remaining amount is "+Integer.toString(currentBillAmount));
} else{
System.out.println("You got:");
System.out.println(amountOfHundredBill + " piece of $100");
System.out.println(amountOfFiftyBill + " piece of $50");
System.out.println(amountOfTenBill + " piece of $10");
System.out.println(amountOfFiveBill + " piece of $5");
System.out.println(amountOfOneBill + " piece of $1");
}
}
}
package design.patterns.behavioural.chainofresponsibility;
public class OneHandler implements Handler {
private Handler nextHandler;
private int denomination = 1;
public void setNextHandler(Handler handler){
this.nextHandler = handler;
}
@Override
public void handle(int balance) {
int amountOfBill = balance / denomination;
int remainder = balance % denomination;
if(remainder > 0){
this.nextHandler.handle(remainder);
}
System.out.println(amountOfBill + " piece of $" + denomination);
}
}
package design.patterns.behavioural.chainofresponsibility;
public class TenHandler implements Handler {
private Handler nextHandler;
private int denomination = 10;
public void setNextHandler(Handler handler){
this.nextHandler = handler;
}
@Override
public void handle(int balance) {
int amountOfBill = balance / denomination;
int remainder = balance % denomination;
if(remainder > 0){
this.nextHandler.handle(remainder);
}
System.out.println(amountOfBill + " piece of $" + denomination);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment