diff --git a/.idea/misc.xml b/.idea/misc.xml
index d5d79e0..a9dcdb0 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/DesignPatternProject/.idea/misc.xml b/DesignPatternProject/.idea/misc.xml
index 61e5329..876b2a6 100644
--- a/DesignPatternProject/.idea/misc.xml
+++ b/DesignPatternProject/.idea/misc.xml
@@ -3,7 +3,7 @@
-
+
\ No newline at end of file
diff --git a/DesignPatternProject/.idea/vcs.xml b/DesignPatternProject/.idea/vcs.xml
index b2bdec2..64713b8 100644
--- a/DesignPatternProject/.idea/vcs.xml
+++ b/DesignPatternProject/.idea/vcs.xml
@@ -2,5 +2,6 @@
+
\ No newline at end of file
diff --git a/DesignPatternProject/.idea/workspace.xml b/DesignPatternProject/.idea/workspace.xml
index 0171a73..aef4b7d 100644
--- a/DesignPatternProject/.idea/workspace.xml
+++ b/DesignPatternProject/.idea/workspace.xml
@@ -24,7 +24,7 @@
-
+
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/Coupon.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/Coupon.java
new file mode 100644
index 0000000..6e62354
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/Coupon.java
@@ -0,0 +1,17 @@
+package edu.tongji.designpattern.ClassDesign.Business.AdaptorDemo;
+/*
+ * created by zhujitao
+ * 2019/10/22
+ * A类优惠卷,可以享受6.8折优惠
+ * */
+
+public interface Coupon {
+
+ final String type = "";
+ final double discountPercentage = 0;
+
+ public double returnDiscount();
+
+ public String getType();
+
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponA.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponA.java
new file mode 100644
index 0000000..2b57bc9
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponA.java
@@ -0,0 +1,23 @@
+package edu.tongji.designpattern.ClassDesign.Business.AdaptorDemo;
+
+/*
+ * created by zhujitao
+ * 2019/10/22
+ * A类优惠卷,可以享受6.8折优惠
+ * */
+
+public class CouponA implements Coupon {
+
+ final String type = "A";
+ final double discountPercentage = 0.68;
+
+ @Override
+ public String getType() {
+ return type;
+ }
+
+ @Override
+ public double returnDiscount() {
+ return discountPercentage;
+ }
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponB.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponB.java
new file mode 100644
index 0000000..9d09197
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponB.java
@@ -0,0 +1,21 @@
+package edu.tongji.designpattern.ClassDesign.Business.AdaptorDemo;/*
+ * created by zhujitao
+ * 2019/10/22
+ * B类优惠卷,可以享受8.8折优惠
+ * */
+
+public class CouponB implements Coupon {
+
+ final String type = "B";
+ final double discountPercentage = 0.88;
+
+ @Override
+ public String getType() {
+ return type;
+ }
+
+ @Override
+ public double returnDiscount() {
+ return discountPercentage;
+ }
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponC.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponC.java
new file mode 100644
index 0000000..076e0f7
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponC.java
@@ -0,0 +1,21 @@
+package edu.tongji.designpattern.ClassDesign.Business.AdaptorDemo;/*
+* created by zhujitao
+* 2019/10/22
+* C类优惠卷,可以享受9.8折优惠
+* */
+
+public class CouponC implements Coupon {
+
+ final String type = "A";
+ final double discountPercentage = 0.98;
+
+ @Override
+ public String getType() {
+ return type;
+ }
+
+ @Override
+ public double returnDiscount() {
+ return discountPercentage;
+ }
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponN.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponN.java
new file mode 100644
index 0000000..64e9c17
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponN.java
@@ -0,0 +1,24 @@
+package edu.tongji.designpattern.ClassDesign.Business.AdaptorDemo;
+
+/*
+ * created by zhujitao
+ * 2019/10/22
+ * N类优惠卷,就是没有优惠卷,不享受任何优惠
+ * */
+
+public class CouponN implements Coupon {
+
+ final String type = "N";
+ final double discountPercentage = 0.0;
+
+ @Override
+ public String getType() {
+ return type;
+ }
+
+ @Override
+ public double returnDiscount() {
+ return discountPercentage;
+ }
+}
+
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/Discount.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/Discount.java
new file mode 100644
index 0000000..5529a63
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/Discount.java
@@ -0,0 +1,11 @@
+package edu.tongji.designpattern.ClassDesign.Business.AdaptorDemo;/*
+ * created by zhujitao
+ * 2019/10/22
+ * 优惠卷适配器的接口
+ * */
+
+public interface Discount {
+
+ public double getDiscount();
+
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/DiscountAdapter.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/DiscountAdapter.java
new file mode 100644
index 0000000..a32f79b
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/DiscountAdapter.java
@@ -0,0 +1,28 @@
+package edu.tongji.designpattern.ClassDesign.Business.AdaptorDemo;/*
+ * created by zhujitao
+ * 2019/10/22
+ * 优惠卷的适配器,通过输入的字符串返回不同的折扣比例
+ * */
+
+public class DiscountAdapter implements Discount {
+
+ Coupon coupon = null;
+ private String couponType = "";
+
+ public DiscountAdapter(String couponType){
+ this.couponType = couponType;
+ }
+
+ @Override
+ public double getDiscount() {
+ if(couponType.equals("A")){
+ coupon = new CouponA();
+ }else if(couponType.equals("B")){
+ coupon = new CouponB();
+ }else if(couponType.equals("C")){
+ coupon = new CouponC();
+ }
+ return coupon.returnDiscount();
+ }
+
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/RealDiscount.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/RealDiscount.java
new file mode 100644
index 0000000..e6a0b74
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/RealDiscount.java
@@ -0,0 +1,24 @@
+package edu.tongji.designpattern.ClassDesign.Business.AdaptorDemo;
+
+/*
+ * created by zhujitao
+ * 2019/10/22
+ * 实际得到具体折扣的类,通过输入的字符串返回不同的折扣比例
+ * */
+
+public class RealDiscount implements Discount {
+
+ DiscountAdapter discountAdapter = null;
+ String couponType = "";
+
+
+ public RealDiscount(String couponType){
+ this.couponType = couponType;
+ }
+
+ @Override
+ public double getDiscount() {
+ discountAdapter = new DiscountAdapter(couponType);
+ return discountAdapter.getDiscount();
+ }
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/ChainofResponsibilityDemo/Complaint.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/ChainofResponsibilityDemo/Complaint.java
new file mode 100644
index 0000000..d8fff9d
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/ChainofResponsibilityDemo/Complaint.java
@@ -0,0 +1,76 @@
+package edu.tongji.designpattern.ClassDesign.Business.ChainofResponsibilityDemo;
+
+/*
+ * created by zhujitao
+ * 2019/10/22
+ * 责任链模式里面的投诉类
+ * */
+
+
+import edu.tongji.designpattern.ClassDesign.Person.Employee;
+import edu.tongji.designpattern.ClassDesign.Person.Manager;
+import edu.tongji.designpattern.ClassDesign.Person.Waiter;
+
+public class Complaint {
+
+ Manager manager;
+ Waiter waiter;
+
+ Employee employee;
+
+ public int level;
+
+ public Complaint(int level, Manager manager, Waiter waiter){
+ this.level = level;
+ this.manager =manager;
+ this.waiter = waiter;
+ }
+
+ //责任链模式,将投诉通过类型进行分析,如果是低级投诉就
+ //使用服务员来解决,高级投诉使用经理来解决
+ //假设投诉登记为1时服务员前来处理,否则的话是由经理来处理
+ //最终默认投诉会被处理
+ public void setCurHanlder(){
+ if (level==1){
+ employee = waiter;
+ }else {
+ employee = manager;
+ }
+ }
+
+ public void settleProblem(){
+ employee.settleComplaint();
+ }
+
+ public Employee getEmployee() {
+ return employee;
+ }
+
+ public int getLevel() {
+ return level;
+ }
+
+ public Manager getManager() {
+ return manager;
+ }
+
+ public Waiter getWaiter() {
+ return waiter;
+ }
+
+ public void setEmployee(Employee employee) {
+ this.employee = employee;
+ }
+
+ public void setLevel(int level) {
+ this.level = level;
+ }
+
+ public void setManager(Manager manager) {
+ this.manager = manager;
+ }
+
+ public void setWaiter(Waiter waiter) {
+ this.waiter = waiter;
+ }
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/DecoratorDemo/CashierDecorator.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/DecoratorDemo/CashierDecorator.java
new file mode 100644
index 0000000..34361e8
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/DecoratorDemo/CashierDecorator.java
@@ -0,0 +1,26 @@
+package edu.tongji.designpattern.ClassDesign.Business.DecoratorDemo;
+
+/*
+ * created by zhujitao
+ * 2019/10/22
+ * 收银员类的抽象装饰类
+ * */
+
+import edu.tongji.designpattern.ClassDesign.Person.Cashier;
+
+public abstract class CashierDecorator {
+
+ Cashier decoratedCashier;
+
+ public CashierDecorator(Cashier decoratedCashier){
+ this.decoratedCashier = decoratedCashier;
+ }
+
+ public boolean settleAccount(){
+ boolean flag = false;
+ //这里执行结账操作,结账成功返回true
+ decoratedCashier.settleAccount();
+ return flag;
+ }
+
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/DecoratorDemo/VIPCashierDecorator.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/DecoratorDemo/VIPCashierDecorator.java
new file mode 100644
index 0000000..3ab9cce
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/DecoratorDemo/VIPCashierDecorator.java
@@ -0,0 +1,45 @@
+package edu.tongji.designpattern.ClassDesign.Business.DecoratorDemo;
+
+/*
+ * created by zhujitao
+ * 2019/10/22
+ * 收银员类的装饰类的具体的类
+ * */
+
+import edu.tongji.designpattern.ClassDesign.Person.Cashier;
+
+import java.util.Scanner;
+
+public class VIPCashierDecorator extends CashierDecorator {
+
+ //初始化函数
+ public VIPCashierDecorator(Cashier decoratedCashier){
+ super(decoratedCashier);
+ }
+
+ @Override
+ public boolean settleAccount() {
+ boolean flag = false;
+ flag = super.settleAccount();
+ //在正常结账之后进行VIP推荐服务
+ VIPApplication();
+ return flag;
+ }
+
+ public boolean VIPApplication(){
+ boolean flag = false;
+ //在下面询问顾客是否办理VIP,然后执行对应的操作
+ System.out.println("您现在还不是VIP用户,需要为您办理VIP专属卡吗?");
+ String answer = "";
+ Scanner input =new Scanner(System.in);
+ answer = input.next();
+ if(answer.equals("Yes")){
+ System.out.println("感谢您的信任,您现在已经是本店的VIP贵宾了,以后请多多支持!");
+ }else {
+ System.out.println("期待您对本店的进一步支持!");
+ }
+
+ return flag;
+ }
+
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Facade/BeerOpener.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Facade/BeerOpener.java
new file mode 100644
index 0000000..74aed3f
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Facade/BeerOpener.java
@@ -0,0 +1,9 @@
+package edu.tongji.designpattern.ClassDesign.Business.Facade;
+
+public class BeerOpener implements DrinkOpener {
+
+ @Override
+ public void Open() {
+ System.out.println("class BeerOpener:method Open:服务员为您打开了百威啤酒!");
+ }
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Facade/CockOpener.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Facade/CockOpener.java
new file mode 100644
index 0000000..6c5d99b
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Facade/CockOpener.java
@@ -0,0 +1,9 @@
+package edu.tongji.designpattern.ClassDesign.Business.Facade;
+
+public class CockOpener implements DrinkOpener {
+
+ @Override
+ public void Open() {
+ System.out.println("class CockOpener:method Open:服务员为您打开了可乐!");
+ }
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Facade/DarkPlumJuiceOpener.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Facade/DarkPlumJuiceOpener.java
new file mode 100644
index 0000000..4cf46c0
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Facade/DarkPlumJuiceOpener.java
@@ -0,0 +1,9 @@
+package edu.tongji.designpattern.ClassDesign.Business.Facade;
+
+public class DarkPlumJuiceOpener implements DrinkOpener {
+
+ @Override
+ public void Open() {
+ System.out.println("class DarkPlumJuiceOpener:method Open:服务员为您打开了酸梅汁!");
+ }
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Facade/DrinkOpener.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Facade/DrinkOpener.java
new file mode 100644
index 0000000..d02b701
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Facade/DrinkOpener.java
@@ -0,0 +1,7 @@
+package edu.tongji.designpattern.ClassDesign.Business.Facade;
+
+public interface DrinkOpener {
+
+ void Open ();
+
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Facade/OpenerMaker.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Facade/OpenerMaker.java
new file mode 100644
index 0000000..c7ed00f
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Facade/OpenerMaker.java
@@ -0,0 +1,27 @@
+package edu.tongji.designpattern.ClassDesign.Business.Facade;
+
+public class OpenerMaker {
+ private DrinkOpener beerOpener;
+ private DrinkOpener cockOpener;
+ private DrinkOpener spriteOpener;
+ private DrinkOpener darkPlumJuiceOpener;
+ public OpenerMaker(){
+ beerOpener = new BeerOpener();
+ cockOpener = new CockOpener();
+ spriteOpener = new SpriteOpener();
+ darkPlumJuiceOpener = new DarkPlumJuiceOpener();
+ }
+ public void openBeer() {
+ beerOpener.Open();
+ }
+ public void openCock() {
+ cockOpener.Open();
+ }
+ public void openSprite() {
+ spriteOpener.Open();
+ }
+ public void openDarkPlumJuice() {
+ darkPlumJuiceOpener.Open();
+ }
+
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Facade/SpriteOpener.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Facade/SpriteOpener.java
new file mode 100644
index 0000000..f06cecc
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Facade/SpriteOpener.java
@@ -0,0 +1,9 @@
+package edu.tongji.designpattern.ClassDesign.Business.Facade;
+
+public class SpriteOpener implements DrinkOpener {
+
+ @Override
+ public void Open() {
+ System.out.println("class SpriteOpener:method Open:服务员为您打开了雪碧!");
+ }
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/Item.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/Item.java
new file mode 100644
index 0000000..4cee933
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/Item.java
@@ -0,0 +1,36 @@
+package edu.tongji.designpattern.ClassDesign.Business.PrototypeMementoDemo;/*
+ * created by zhujitao
+ * 2019/10/25
+ * 代替food的item
+ * */
+
+public class Item {
+
+ private String name;
+ private double price;
+
+ public Item(String name, double price){
+ this.name = name;
+ this.price = price;
+ }
+
+
+
+ //下面是get和set方法
+ public double getPrice() {
+ return price;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setPrice(double price) {
+ this.price = price;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/Memento.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/Memento.java
new file mode 100644
index 0000000..725e725
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/Memento.java
@@ -0,0 +1,35 @@
+package edu.tongji.designpattern.ClassDesign.Business.PrototypeMementoDemo;
+
+/*
+ * created by zhujitao
+ * 2019/10/22
+ * 使用单例模式去创建一个类
+ * */
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Memento {
+
+ private List mementoList = new ArrayList();
+
+
+ public boolean addOrderClone(OrderClone orderClone){
+ boolean flag = false;
+ //添加操作
+ mementoList.add(orderClone);
+ return flag;
+ }
+
+ public OrderClone getOrderClone(int index){
+ OrderClone orderClone = mementoList.get(index);
+ return orderClone;
+ }
+
+ public int getSize(){
+ return mementoList.size();
+ }
+
+
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/Menu.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/Menu.java
new file mode 100644
index 0000000..ea00720
--- /dev/null
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/Menu.java
@@ -0,0 +1,58 @@
+package edu.tongji.designpattern.ClassDesign.Business.PrototypeMementoDemo;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Menu {
+
+ private static Menu instance = new Menu();
+
+ public static Menu getInstance() {
+ return instance;
+ }
+
+ private List- menuList=new ArrayList<>();
+
+ String[] foodName = {"生菜沙拉", "番茄沙拉", "黄瓜沙拉", "鱼刺身", "虾刺身",
+ "鱼寿司", "黄瓜寿司", "黄瓜鱼寿司", "番茄意面","肉意面","蘑菇意面","鱼虾意面",
+ "油炸鸡","油炸土豆","油炸土豆鸡","肉卷饼","蘑菇卷饼","鸡肉卷饼",
+ "肉汉堡","芝士汉堡","青菜芝士汉堡", "青菜番茄汉堡", "菠萝肉汉堡",
+ "芝士披萨", "芝士香肠披萨", "芝士鸡披萨", "鸡蛋煎饼", "巧克力煎饼","鸡蛋草莓煎饼",
+ "蜂蜜蛋糕", "巧克力蛋糕", "蜂蜜胡萝卜蛋糕", "蒸鱼", "蒸肉", "蒸胡萝卜", "蒸虾",
+ "香蕉奶昔", "草莓奶昔", "西瓜奶昔", "波罗奶昔", "香蕉波罗奶昔", "烤鸡肉",
+ "烤肉", "烤蘑菇", "烤蘑菇菠萝", "可乐", "雪碧", "百威啤酒", "酸梅汁"};
+
+ //对应上面的食物名称
+ double[] foodPrice = {
+ 12, 13, 12, 22, 24,
+ 27, 25, 25, 22, 24, 26, 28,
+ 27, 25, 25, 22, 24, 26,
+ 28,27, 25, 25, 22,
+ 24, 26, 28,27, 25, 25,
+ 22, 24, 26, 28,27, 25, 15,
+ 22, 24, 26, 28,27, 25,
+ 25, 22, 24, 5, 6, 12, 5};
+
+ //初始化菜单,向里面添加菜
+ private Menu() {
+ for(int i=0; i getMenu() {
+ return menuList;
+ }
+
+ //展示菜单内的菜和价格
+ public void showMenu(){
+ for(int i=0; i itemList = new ArrayList
- ();
+ private double price = 0.0;
+
+ //构造函数,传入的参数是Order,目的是将Order里面需要记录的数据存入OrderClone中
+ public OrderClone(Order order){
+ this.itemList = order.getItemList();
+ this.price = order.getPrice();
+ }
+
+ //返回OrderColne的对象,将其存入备忘录中,方便记录
+ @Override
+ public Object clone() {
+ Object clone = null;
+ try {
+ clone = super.clone();
+ } catch (CloneNotSupportedException e) {
+ e.printStackTrace();
+ }
+ return clone;
+ }
+
+
+ //下面是get和set方法
+ public List
- getItemList() {
+ return itemList;
+ }
+
+ public double getPrice() {
+ return price;
+ }
+
+ public void setItemList(List
- itemList) {
+ this.itemList = itemList;
+ }
+
+ public void setPrice(double price) {
+ this.price = price;
+ }
+
+
+}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/Order.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/Order.java
index 8c7da3b..21accea 100644
--- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/Order.java
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/Order.java
@@ -1,4 +1,61 @@
package edu.tongji.designpattern.ClassDesign.Order;
+import edu.tongji.designpattern.ClassDesign.Business.PrototypeMementoDemo.Item;
+import edu.tongji.designpattern.ClassDesign.Person.Employee;
+
+import java.util.ArrayList;
+import java.util.List;
+
public class Order extends AbstractOrder {
+
+ private List
- itemList = new ArrayList
- ();
+ private List employeeList = new ArrayList();
+ private double price = 0.0;
+ private Integer orderState;
+
+
+
+ //下面是get和set方法
+ public double getPrice() {
+ return price;
+ }
+
+ public void setPrice(double price) {
+ this.price = price;
+ }
+
+ public List getEmployeeList() {
+ return employeeList;
+ }
+
+ public List
- getItemList() {
+ return itemList;
+ }
+
+ public void setEmployeeList(List employeeList) {
+ this.employeeList = employeeList;
+ }
+
+ public void setItemList(List
- itemList) {
+ this.itemList = itemList;
+ }
+
+ public Integer getOrderState() {
+ return orderState;
+ }
+ //加入notifyall函数:ruanbanyao
+ public void setOrderState(Integer orderState) {
+ this.orderState = orderState;
+ notifyAllEmployees();
+ }
+ //ruan
+ public void addEmploy(Employee e){
+ employeeList.add(e);
+ }
+ private void notifyAllEmployees() {
+ for (Employee employee : employeeList) {
+ employee.update();
+ }
+ }
+
}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cashier.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cashier.java
index 569c02f..274717d 100644
--- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cashier.java
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cashier.java
@@ -1,14 +1,44 @@
package edu.tongji.designpattern.ClassDesign.Person;
+import edu.tongji.designpattern.ClassDesign.Business.AdaptorDemo.RealDiscount;
import edu.tongji.designpattern.ClassDesign.Business.AirConditionerAPI.AirConditionerAPI;
+import edu.tongji.designpattern.ClassDesign.Order.Order;
+
+import java.text.DecimalFormat;
public class Cashier extends Employee {
private double temperature;
- public Cashier(double temperature,AirConditionerAPI airConditionerAPI) {
+
+ Order order;
+ String couponType;
+ RealDiscount realDiscount;
+
+ public Cashier(double temperature,AirConditionerAPI airConditionerAPI, Order order, String couponType) {
super(airConditionerAPI);
this.temperature=temperature;
+
+ this.order = order;
+ this.couponType = couponType;
+ realDiscount = new RealDiscount(couponType);
+ }
+
+// public Cashier(Order order, String couponType){
+// this.order = order;
+// this.couponType = couponType;
+// realDiscount = new RealDiscount(couponType);
+// }
+
+ public void settleAccount(){
+ //这里执行结账操作,结账成功返回true
+ if(couponType.equals("N")){
+ System.out.println("您本次就餐共花费了"+order.getPrice()+"元,欢迎下次再来");
+ }else {
+ DecimalFormat df = new DecimalFormat( "0.0");
+ System.out.println("您的优惠卷是" + couponType + "类型的,可以享受" + df.format(realDiscount.getDiscount() * 10) + "折优惠。");
+ System.out.println("您本次就餐原价是" + order.getPrice() + "元,折后价是" + order.getPrice() * realDiscount.getDiscount() + "元。");
+ }
}
@Override
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cook.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cook.java
index ce5576b..551206a 100644
--- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cook.java
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cook.java
@@ -1,16 +1,22 @@
package edu.tongji.designpattern.ClassDesign.Person;
import edu.tongji.designpattern.ClassDesign.Business.AirConditionerAPI.AirConditionerAPI;
+import edu.tongji.designpattern.ClassDesign.Order.Order;
public class Cook extends Employee {
private double temperature;
-
- public Cook(double temperature,AirConditionerAPI airConditionerAPI) {
+//ruan
+ public Cook(double temperature, AirConditionerAPI airConditionerAPI, Order order) {
super(airConditionerAPI);
this.temperature=temperature;
+ this.order=order;
+ this.order.addEmploy(this);
+ }
+//ruan
+ public Cook(){
+ super();
}
-
@Override
public void changeTmp() {
System.out.println("厨师修改空调温度——");
@@ -19,9 +25,15 @@ public void changeTmp() {
@Override
public void update() {
+ if(order.getOrderState()==0)
+ System.out.println("class Cook: method update:接受到新订单!厨师开始做菜");
+ else
+
+ System.out.println("class Cook: method update:订单完成!厨师等待服务员接菜");
}
+
@Override
public void settleComplaint() {
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Employee.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Employee.java
index 976e5d7..74fb350 100644
--- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Employee.java
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Employee.java
@@ -9,7 +9,8 @@ enum Gender{
public abstract class Employee {
// private AirConditionerAPI airConditionerAPI;
- private Order order;
+ //waiter要使用order,所以改为protected:ruanbanyao
+ protected Order order;
private String employeeName;
private Gender employeeGender;
private Integer employeeAge;
@@ -22,7 +23,10 @@ public abstract class Employee {
public Employee(AirConditionerAPI airConditionerAPI){
this.airConditionerAPI= airConditionerAPI;
}
+//ruan
+ public Employee() {
+ }
public abstract void changeTmp();
@@ -31,6 +35,11 @@ public Employee(AirConditionerAPI airConditionerAPI){
public abstract void getMessage();
public abstract void sendMessage();
+ public Order getOrder() {
+ return order;
+ }
+
+
}
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Manager.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Manager.java
index 9b989b2..53ea809 100644
--- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Manager.java
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Manager.java
@@ -11,6 +11,23 @@ public Manager(double temperature,AirConditionerAPI airConditionerAPI) {
this.temperature=temperature;
}
+ //private static Manager instance = new Manager();
+
+ //public static Manager getInstance() {
+// return instance;
+// }
+
+ //解决顾客投诉的方法
+ @Override
+ public void settleComplaint(){
+ System.out.println("您好,我是本店的经理,请问您有什么问题吗?");
+ System.out.println("我已经了解了事情的经过,确实是我们的工作疏忽,我们一定会妥善解决的。");
+ System.out.println("您好,我们会为您的本次就餐提供A类优惠卷,在结账时会提供6.8折优惠。");
+ System.out.println("非常抱歉,同时祝您就餐愉快!");
+ }
+
+
+
@Override
public void changeTmp() {
System.out.println("大堂经理修改空调温度——");
@@ -22,10 +39,6 @@ public void update() {
}
- @Override
- public void settleComplaint() {
-
- }
@Override
public void getMessage() {
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Waiter.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Waiter.java
index f2c817f..d294549 100644
--- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Waiter.java
+++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Waiter.java
@@ -1,15 +1,28 @@
+
package edu.tongji.designpattern.ClassDesign.Person;
import edu.tongji.designpattern.ClassDesign.Business.AirConditionerAPI.AirConditionerAPI;
+import edu.tongji.designpattern.ClassDesign.Business.Facade.OpenerMaker;
+import edu.tongji.designpattern.ClassDesign.Business.PrototypeMementoDemo.Item;
+import edu.tongji.designpattern.ClassDesign.Order.Order;
public class Waiter extends Employee {
Customer customer;
+ public OpenerMaker openerMaker;//ruan
private double temperature;
+ //默认构造函数:ruan
+ public Waiter(){
+ super();
+ }
+
- public Waiter(double temperature,AirConditionerAPI airConditionerAPI) {
+ //ruan
+ public Waiter(double temperature, AirConditionerAPI airConditionerAPI, Order order) {
super(airConditionerAPI);
+ this.order=order;
+ this.order.addEmploy(this);
this.temperature= temperature;
}
@@ -17,22 +30,46 @@ public void getState(Customer customer){
System.out.println("顾客现在的状态是:");
}
+
+
+ @Override
+ public void settleComplaint() {
+ System.out.println("您好,请问您有什么问题吗?");
+ System.out.println("好的,我们会催促后厨尽快为您准备食物,请您稍等片刻!");
+ System.out.println("非常抱歉,同时祝您就餐愉快!");
+ }
+
@Override
public void changeTmp() {
System.out.println("服务员修改空调温度——");
airConditionerAPI.changeTem(temperature);
}
-
+ //ruan
@Override
public void update() {
-
+ if(order.getOrderState()==0)
+ System.out.println("class Waiter: method update:新订单创建!服务员等待接菜");
+ else
+ System.out.println("class Waiter: method update:订单完成!服务员开始上菜");
}
-
- @Override
- public void settleComplaint() {
-
+ public void getDrinkList(Order order){
+ openerMaker=new OpenerMaker();
+ for (Item item : order.getItemList()) {
+ if (item.getName() == "百威啤酒" || item.getName() == "酸梅汁"|| item.getName() == "可乐"|| item.getName() == "雪碧") {
+ if (item.getName() == "百威啤酒") {
+ openerMaker.openBeer();
+ }
+ else if(item.getName() == "可乐")
+ openerMaker.openCock();
+ else if (item.getName() == "雪碧")
+ openerMaker.openSprite();
+ else
+ openerMaker .openDarkPlumJuice();
+ }
+ }
}
+
@Override
public void getMessage() {
diff --git a/DesignPatternProject/src/edu/tongji/designpattern/Main.java b/DesignPatternProject/src/edu/tongji/designpattern/Main.java
index 26a332c..4bafb45 100644
--- a/DesignPatternProject/src/edu/tongji/designpattern/Main.java
+++ b/DesignPatternProject/src/edu/tongji/designpattern/Main.java
@@ -1,20 +1,21 @@
package edu.tongji.designpattern;
-import edu.tongji.designpattern.ClassDesign.*;
import edu.tongji.designpattern.ClassDesign.Business.AirConditionerAPI.FloorAirConditioner;
import edu.tongji.designpattern.ClassDesign.Business.AirConditionerAPI.HangingAirConditioner;
import edu.tongji.designpattern.ClassDesign.Business.MenuSource.MenuSource;
import edu.tongji.designpattern.ClassDesign.Business.MenuSource.ProxyMenuSource;
-import edu.tongji.designpattern.ClassDesign.Person.Customer;
-import edu.tongji.designpattern.ClassDesign.Person.Employee;
-import edu.tongji.designpattern.ClassDesign.Person.Manager;
-import edu.tongji.designpattern.ClassDesign.Person.Waiter;
+import edu.tongji.designpattern.ClassDesign.Business.PrototypeMementoDemo.Item;
+import edu.tongji.designpattern.ClassDesign.Order.Order;
+import edu.tongji.designpattern.ClassDesign.Person.*;
+
+import java.util.ArrayList;
+import java.util.List;
public class Main {
public static void main(String[] args) {
-//test for StatePattern
+ //test for StatePattern
//初始时根据时间不同来让顾客的状态发生变化
//感觉需要有一个更好的办法
//顾客的点餐、等待、就餐等状态之间的变化需要的参数应当不是同一个
@@ -36,16 +37,16 @@ public static void main(String[] args) {
-//test for BridgePattern
+ //test for BridgePattern
//注册不同的职工来调用同一个接口API的不同实体类
- Employee waiter1 = new Waiter(24,new FloorAirConditioner());
+ Employee waiter1 = new Waiter(24,new FloorAirConditioner(),new Order());
Employee manager = new Manager(25,new HangingAirConditioner());
waiter1.changeTmp();
manager.changeTmp();
-//test for CompositePattern
+ //test for CompositePattern
//注册的四名顾客
Customer customer1=new Customer("张先生","男",1);
Customer customer2=new Customer("张女士","男",1);
@@ -68,5 +69,65 @@ public static void main(String[] args) {
//资源文件不需要从磁盘加载
source.show();
+
+
+ //打折的测试
+ //RealDiscount realDiscount = new RealDiscount("A");
+ //System.out.printf("discount = "+realDiscount.getDiscount());
+
+ //投诉处理的测试
+// Manager manager = Manager.getInstance();
+// Waiter waiter = new Waiter();
+//
+// Complaint complaint = new Complaint(1, manager, waiter);
+// complaint.setCurHanlder();
+// complaint.getEmployee().settleComplaint();
+//
+// Complaint complaint1 = new Complaint(3, manager, waiter);
+// complaint1.setCurHanlder();
+// complaint1.settleProblem();
+
+ //结账处理的测试
+// Order order = new Order();
+// order.setPrice(100.0);
+// Cashier cashier = new Cashier(order, "N");
+//
+// VIPCashierDecorator vipCashierDecorator = new VIPCashierDecorator(cashier);
+// vipCashierDecorator.settleAccount();
+
+
+ //原型和备忘录模式的测试
+// Order order = new Order();
+// order.setPrice(100.0);
+//
+// OrderClone orderClone = new OrderClone(order);
+//
+// OrderClone orderClone1 = (OrderClone)orderClone.clone();
+// Memento memento = new Memento();
+// memento.addOrderClone(orderClone1);
+// //memento.getOrderClone(1);
+// int length = memento.getSize();
+// System.out.println(memento.getOrderClone(length-1).getPrice());
+
+
+
+ //输出菜单测试
+// Menu menu = Menu.getInstance();
+// menu.showMenu();
+ //观察者模式测试
+ Order order= new Order();
+ Employee waiter2 = new Waiter(24,new FloorAirConditioner(),order);
+ Employee cook2= new Cook(24,new FloorAirConditioner(),order);
+ order.setOrderState(0);
+ order.setOrderState(1);
+ //facade测试
+ List
- items=new ArrayList<>();
+ items.add(new Item("可乐",20.2));
+ items.add(new Item("雪碧",20.2));
+ items.add(new Item("酸梅汁",20.2));
+ items.add(new Item("百威啤酒",20.2));
+ order.setItemList(items);
+ ((Waiter) waiter2).getDrinkList(order);
+
}
}
diff --git a/README.md b/README.md
deleted file mode 100644
index 9e27629..0000000
--- a/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# DesignPatternProject
-
-change in dev
\ No newline at end of file
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/Coupon.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/Coupon.class
new file mode 100644
index 0000000..f78720a
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/Coupon.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponA.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponA.class
new file mode 100644
index 0000000..3fad808
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponA.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponB.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponB.class
new file mode 100644
index 0000000..0eb4fcf
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponB.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponC.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponC.class
new file mode 100644
index 0000000..0d05354
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponC.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponN.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponN.class
new file mode 100644
index 0000000..e4c363f
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/CouponN.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/Discount.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/Discount.class
new file mode 100644
index 0000000..99699c9
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/Discount.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/DiscountAdapter.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/DiscountAdapter.class
new file mode 100644
index 0000000..9f8d781
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/DiscountAdapter.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/RealDiscount.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/RealDiscount.class
new file mode 100644
index 0000000..df79855
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AdaptorDemo/RealDiscount.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AirConditionerAPI/AirConditionerAPI.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AirConditionerAPI/AirConditionerAPI.class
new file mode 100644
index 0000000..7c39ee4
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AirConditionerAPI/AirConditionerAPI.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AirConditionerAPI/FloorAirConditioner.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AirConditionerAPI/FloorAirConditioner.class
new file mode 100644
index 0000000..147c9f0
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AirConditionerAPI/FloorAirConditioner.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AirConditionerAPI/HangingAirConditioner.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AirConditionerAPI/HangingAirConditioner.class
new file mode 100644
index 0000000..2f47add
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/AirConditionerAPI/HangingAirConditioner.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Builder/ConcreteDishBuilder.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Builder/ConcreteDishBuilder.class
new file mode 100644
index 0000000..0825146
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Builder/ConcreteDishBuilder.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Builder/DishBuilder.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Builder/DishBuilder.class
new file mode 100644
index 0000000..b93872c
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Builder/DishBuilder.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/ChainofResponsibilityDemo/Complaint.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/ChainofResponsibilityDemo/Complaint.class
new file mode 100644
index 0000000..24f937e
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/ChainofResponsibilityDemo/Complaint.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/AddDishCommand.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/AddDishCommand.class
new file mode 100644
index 0000000..8c677ce
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/AddDishCommand.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/ConfirmOrderCommand.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/ConfirmOrderCommand.class
new file mode 100644
index 0000000..b9108cb
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/ConfirmOrderCommand.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/CreateOrderCommand.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/CreateOrderCommand.class
new file mode 100644
index 0000000..5dd91cd
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/CreateOrderCommand.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/DropDishCommand.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/DropDishCommand.class
new file mode 100644
index 0000000..40e58d0
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/DropDishCommand.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/OrderPadCommand.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/OrderPadCommand.class
new file mode 100644
index 0000000..3cde006
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/OrderPadCommand.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/DecoratorDemo/CashierDecorator.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/DecoratorDemo/CashierDecorator.class
new file mode 100644
index 0000000..21a6960
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/DecoratorDemo/CashierDecorator.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/DecoratorDemo/VIPCashierDecorator.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/DecoratorDemo/VIPCashierDecorator.class
new file mode 100644
index 0000000..6700c7f
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/DecoratorDemo/VIPCashierDecorator.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/BeerOpener.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/BeerOpener.class
new file mode 100644
index 0000000..518da82
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/BeerOpener.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/CockOpener.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/CockOpener.class
new file mode 100644
index 0000000..5a0b8b8
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/CockOpener.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/DarkPlumJuiceOpener.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/DarkPlumJuiceOpener.class
new file mode 100644
index 0000000..317efd3
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/DarkPlumJuiceOpener.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/DrinkOpener.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/DrinkOpener.class
new file mode 100644
index 0000000..b5045e4
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/DrinkOpener.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/FacadeDemo.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/FacadeDemo.class
new file mode 100644
index 0000000..53ef730
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/FacadeDemo.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/OpenerMaker.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/OpenerMaker.class
new file mode 100644
index 0000000..e1580bf
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/OpenerMaker.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/SpriteOpener.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/SpriteOpener.class
new file mode 100644
index 0000000..3a7a9b7
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Facade/SpriteOpener.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator/DishIterator.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator/DishIterator.class
new file mode 100644
index 0000000..f1e536d
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator/DishIterator.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator/Iterator.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator/Iterator.class
new file mode 100644
index 0000000..2d5f4f6
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator/Iterator.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator/OrderIterator.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator/OrderIterator.class
new file mode 100644
index 0000000..574dd63
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator/OrderIterator.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/MenuSource/MenuSource.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/MenuSource/MenuSource.class
new file mode 100644
index 0000000..5b62a76
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/MenuSource/MenuSource.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/MenuSource/ProxyMenuSource.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/MenuSource/ProxyMenuSource.class
new file mode 100644
index 0000000..22d87d1
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/MenuSource/ProxyMenuSource.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/MenuSource/RealMenuSource.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/MenuSource/RealMenuSource.class
new file mode 100644
index 0000000..9df97db
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/MenuSource/RealMenuSource.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/AddDishStrategy.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/AddDishStrategy.class
new file mode 100644
index 0000000..c0c4993
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/AddDishStrategy.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStragegy.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStragegy.class
new file mode 100644
index 0000000..a68d2ea
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStragegy.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderConfirmStrategy.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderConfirmStrategy.class
new file mode 100644
index 0000000..be1869a
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderConfirmStrategy.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderCreateStrategy.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderCreateStrategy.class
new file mode 100644
index 0000000..f9da468
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderCreateStrategy.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderRecordingStrategy.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderRecordingStrategy.class
new file mode 100644
index 0000000..7bb0f06
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderRecordingStrategy.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/Item.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/Item.class
new file mode 100644
index 0000000..e30d653
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/Item.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/Memento.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/Memento.class
new file mode 100644
index 0000000..4d78ce7
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/Memento.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/Menu.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/Menu.class
new file mode 100644
index 0000000..3ec5221
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/Menu.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/OrderClone.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/OrderClone.class
new file mode 100644
index 0000000..0d2fd1d
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/PrototypeMementoDemo/OrderClone.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/State/CheckOutState.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/State/CheckOutState.class
new file mode 100644
index 0000000..68d812c
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/State/CheckOutState.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/State/CustomerState.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/State/CustomerState.class
new file mode 100644
index 0000000..7565972
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/State/CustomerState.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/State/EatState.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/State/EatState.class
new file mode 100644
index 0000000..3620d7c
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/State/EatState.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/State/LeaveState.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/State/LeaveState.class
new file mode 100644
index 0000000..f157fb6
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/State/LeaveState.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/State/OrderState.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/State/OrderState.class
new file mode 100644
index 0000000..60fd31d
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/State/OrderState.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/State/WaitState.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/State/WaitState.class
new file mode 100644
index 0000000..d489bde
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/State/WaitState.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/Order.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/Order.class
index 10567b0..e287dc7 100644
Binary files a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/Order.class and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/Order.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Cashier.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Cashier.class
index 2529a3b..9b29656 100644
Binary files a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Cashier.class and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Cashier.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Cook.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Cook.class
index 577ea14..e7e79f8 100644
Binary files a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Cook.class and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Cook.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Customer.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Customer.class
new file mode 100644
index 0000000..662c4c1
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Customer.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Employee.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Employee.class
index 051a07e..e3c0c71 100644
Binary files a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Employee.class and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Employee.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Gender.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Gender.class
new file mode 100644
index 0000000..9207a1a
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Gender.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Manager.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Manager.class
index b694253..a460dce 100644
Binary files a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Manager.class and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Manager.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Waiter.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Waiter.class
index d2dd9b3..49f515a 100644
Binary files a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Waiter.class and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Waiter.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/Dish.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/Dish.class
new file mode 100644
index 0000000..e001b2c
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/Dish.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/InterPhoneChannel.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/InterPhoneChannel.class
new file mode 100644
index 0000000..7908b6d
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/InterPhoneChannel.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/Table.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/Table.class
new file mode 100644
index 0000000..ab53d83
Binary files /dev/null and b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/Table.class differ
diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/Main.class b/out/production/DesignPatternProject/edu/tongji/designpattern/Main.class
index adaf660..f451ff1 100644
Binary files a/out/production/DesignPatternProject/edu/tongji/designpattern/Main.class and b/out/production/DesignPatternProject/edu/tongji/designpattern/Main.class differ