From 6b48577e6a4e499bef9c5984e8057dcca08cab2b Mon Sep 17 00:00:00 2001 From: Eyisheng Date: Mon, 28 Oct 2019 20:33:39 +0800 Subject: [PATCH 1/4] commit --- .../Business/Command/AddDishCommand.java | 15 +++- .../Business/Command/ConfirmOrderCommand.java | 12 ++- .../Business/Command/CreateOrderCommand.java | 13 +++- .../Business/Command/DropDishCommand.java | 13 +++- .../Business/Command/OrderPadCommand.java | 15 +++- .../Business/Iterator/DishIterator.java | 48 +++++++++++- .../Business/Iterator/Iterator.java | 5 -- .../Business/Iterator/MyIterator.java | 10 +++ .../Business/Iterator/OrderIterator.java | 50 ++++++++++++- .../OrderRecording/AddDishStrategy.java | 10 ++- .../OrderRecording/DropDishStragegy.java | 4 - .../OrderRecording/DropDishStrategy.java | 16 ++++ .../OrderRecording/OrderConfirmStrategy.java | 15 +++- .../OrderRecording/OrderCreateStrategy.java | 9 ++- .../OrderRecordingStrategy.java | 4 + .../ClassDesign/Order/AbstractAggregate.java | 28 +++++++ .../ClassDesign/Order/Order.java | 63 +++++++++++++++- .../ClassDesign/Order/OrderAggregate.java | 12 +++ .../{AbstractOrder.java => OrderType.java} | 3 +- .../ClassDesign/Order/UndeterminedOrder.java | 5 -- .../ClassDesign/Person/BroadcastType.java | 5 ++ .../ClassDesign/Person/Cashier.java | 8 +- .../ClassDesign/Person/Cook.java | 15 +++- .../ClassDesign/Person/Customer.java | 64 ++++++++++++++++ .../ClassDesign/Person/Employee.java | 32 ++++++-- .../ClassDesign/Person/EmployeeTitle.java | 5 ++ .../Person/Filter/CustomerCriteria.java | 11 +++ .../Filter/NonVIPCustomerCriterira.java | 24 ++++++ .../Person/Filter/VIPCustomerCriteria.java | 24 ++++++ .../ClassDesign/Person/Manager.java | 9 ++- .../ClassDesign/Person/Waiter.java | 56 +++++++++++++- .../designpattern/ClassDesign/Tools/Dish.java | 4 + .../ClassDesign/Tools/InterPhoneChannel.java | 70 ++++++++++++++++++ .../src/edu/tongji/designpattern/Main.java | 22 +++++- .../DesignPatternProject.kotlin_module | Bin 0 -> 16 bytes .../Business/Command/AddDishCommand.class | Bin 0 -> 375 bytes .../Command/ConfirmOrderCommand.class | Bin 0 -> 390 bytes .../Business/Command/CreateOrderCommand.class | Bin 0 -> 387 bytes .../Business/Command/DropDishCommand.class | Bin 0 -> 378 bytes .../Business/Command/OrderPadCommand.class | Bin 0 -> 165 bytes .../Business/Iterator/DishIterator.class | Bin 0 -> 893 bytes .../Business/Iterator/MyIterator.class | Bin 0 -> 300 bytes .../Business/Iterator/OrderIterator.class | Bin 0 -> 916 bytes .../OrderRecording/AddDishStrategy.class | Bin 0 -> 392 bytes .../OrderRecording/DropDishStragegy.class | Bin 0 -> 395 bytes .../OrderRecording/OrderConfirmStrategy.class | Bin 0 -> 407 bytes .../OrderRecording/OrderCreateStrategy.class | Bin 0 -> 404 bytes .../OrderRecordingStrategy.class | Bin 0 -> 186 bytes .../ClassDesign/Customer/Customer.class | Bin 341 -> 0 bytes .../ClassDesign/Order/AbstractOrder.class | Bin 350 -> 0 bytes .../Order/AbstractOrderAggregate.class | Bin 0 -> 377 bytes .../ClassDesign/Order/Order.class | Bin 366 -> 0 bytes .../ClassDesign/Order/OrderAggregate.class | Bin 0 -> 402 bytes .../ClassDesign/Order/UndeterminedOrder.class | Bin 402 -> 0 bytes .../Order/UndeterminedOrderAggregate.class | Bin 0 -> 438 bytes .../ClassDesign/Person/BroadcastType.class | Bin 0 -> 1221 bytes .../ClassDesign/Person/Cashier.class | Bin 370 -> 1008 bytes .../ClassDesign/Person/Cook.class | Bin 361 -> 1411 bytes .../ClassDesign/Person/Customer.class | Bin 0 -> 337 bytes .../ClassDesign/Person/Employee.class | Bin 337 -> 1521 bytes .../ClassDesign/Person/EmployeeTitle.class | Bin 0 -> 1259 bytes .../ClassDesign/Person/Gender.class | Bin 0 -> 1112 bytes .../ClassDesign/Person/Manager.class | Bin 370 -> 1008 bytes .../ClassDesign/Person/Waiter.class | Bin 367 -> 1190 bytes .../ClassDesign/Tools/Dish.class | Bin 0 -> 323 bytes .../ClassDesign/Tools/InterPhoneChannel.class | Bin 0 -> 3113 bytes .../ClassDesign/Tools/Table.class | Bin 0 -> 326 bytes .../edu/tongji/designpattern/Main$A.class | Bin 0 -> 638 bytes .../edu/tongji/designpattern/Main$B.class | Bin 0 -> 677 bytes .../edu/tongji/designpattern/Main$data.class | Bin 0 -> 502 bytes .../edu/tongji/designpattern/Main.class | Bin 565 -> 1238 bytes 71 files changed, 660 insertions(+), 39 deletions(-) delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/Iterator.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/MyIterator.java delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStragegy.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStrategy.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/AbstractAggregate.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/OrderAggregate.java rename DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/{AbstractOrder.java => OrderType.java} (50%) delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/UndeterminedOrder.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/BroadcastType.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/EmployeeTitle.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/CustomerCriteria.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/NonVIPCustomerCriterira.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/VIPCustomerCriteria.java create mode 100644 out/production/DesignPatternProject/META-INF/DesignPatternProject.kotlin_module create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/AddDishCommand.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/ConfirmOrderCommand.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/CreateOrderCommand.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/DropDishCommand.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/OrderPadCommand.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator/DishIterator.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator/MyIterator.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator/OrderIterator.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/AddDishStrategy.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStragegy.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderConfirmStrategy.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderCreateStrategy.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderRecordingStrategy.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Customer/Customer.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/AbstractOrder.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/AbstractOrderAggregate.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/Order.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/OrderAggregate.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/UndeterminedOrder.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/UndeterminedOrderAggregate.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/BroadcastType.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Customer.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/EmployeeTitle.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Gender.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/Dish.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/InterPhoneChannel.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/Table.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/Main$A.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/Main$B.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/Main$data.class diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/AddDishCommand.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/AddDishCommand.java index 0ee4d57..6173062 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/AddDishCommand.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/AddDishCommand.java @@ -1,4 +1,17 @@ package edu.tongji.designpattern.ClassDesign.Business.Command; -public class AddDishCommand { +import edu.tongji.designpattern.ClassDesign.Person.Waiter; +import edu.tongji.designpattern.ClassDesign.Tools.Dish; + +public class AddDishCommand extends OrderPadCommand { + + public AddDishCommand(Waiter rec, Dish dish){ + super(rec); + this.dish = dish; + } + + @Override + public void execute() { + this.receiver.addDishForCustomer(this.dish); + } } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/ConfirmOrderCommand.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/ConfirmOrderCommand.java index 7f968e6..5df28a5 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/ConfirmOrderCommand.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/ConfirmOrderCommand.java @@ -1,4 +1,14 @@ package edu.tongji.designpattern.ClassDesign.Business.Command; -public class ConfirmOrderCommand { +import edu.tongji.designpattern.ClassDesign.Person.Waiter; + +public class ConfirmOrderCommand extends OrderPadCommand{ + public ConfirmOrderCommand(Waiter rec){ + super(rec); + + } + @Override + public void execute() { + this.receiver.confirmOrderForCustomer(); + } } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/CreateOrderCommand.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/CreateOrderCommand.java index bdd6a4a..bd6796a 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/CreateOrderCommand.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/CreateOrderCommand.java @@ -1,4 +1,15 @@ package edu.tongji.designpattern.ClassDesign.Business.Command; -public class CreateOrderCommand { +import edu.tongji.designpattern.ClassDesign.Business.OrderRecording.OrderCreateStrategy; +import edu.tongji.designpattern.ClassDesign.Order.Order; +import edu.tongji.designpattern.ClassDesign.Person.Waiter; + +public class CreateOrderCommand extends OrderPadCommand{ + public CreateOrderCommand(Waiter rec){ + super(rec); + } + @Override + public void execute() { + this.receiver.createOrderForCustomer(); + } } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/DropDishCommand.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/DropDishCommand.java index c9fdab8..19b1987 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/DropDishCommand.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/DropDishCommand.java @@ -1,4 +1,15 @@ package edu.tongji.designpattern.ClassDesign.Business.Command; -public class DropDishCommand { +import edu.tongji.designpattern.ClassDesign.Person.Waiter; +import edu.tongji.designpattern.ClassDesign.Tools.Dish; + +public class DropDishCommand extends OrderPadCommand{ + public DropDishCommand(Waiter rec, Dish dish){ + super(rec); + this.dish = dish; + } + @Override + public void execute() { + this.receiver.dropDishForCustomer(this.dish); + } } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/OrderPadCommand.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/OrderPadCommand.java index 9510cbe..b29fa48 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/OrderPadCommand.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/OrderPadCommand.java @@ -1,4 +1,17 @@ package edu.tongji.designpattern.ClassDesign.Business.Command; -public interface OrderPadCommand { +import edu.tongji.designpattern.ClassDesign.Order.Order; +import edu.tongji.designpattern.ClassDesign.Person.Waiter; +import edu.tongji.designpattern.ClassDesign.Tools.Dish; + +public abstract class OrderPadCommand { + protected Waiter receiver = null; + protected Order order = null; + protected Dish dish = null; + + public OrderPadCommand(Waiter rec){ + this.receiver = rec; + } + + public abstract void execute(); } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/DishIterator.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/DishIterator.java index 7083ff7..e3faa29 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/DishIterator.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/DishIterator.java @@ -1,7 +1,53 @@ package edu.tongji.designpattern.ClassDesign.Business.Iterator; +import edu.tongji.designpattern.ClassDesign.Order.Order; import edu.tongji.designpattern.ClassDesign.Tools.Dish; -public class DishIterator implements Iterator { +import java.util.List; +public class DishIterator implements MyIterator { + + private Order order = null; + private List lst = null; + private int position = 0; + + public DishIterator(Order order, List dishes){ + this.order = order; + this.lst = dishes; + } + + @Override + public boolean hasNext() { + return position < (lst.size() - 1); + } + + @Override + public Dish getNext() { + if (position < lst.size()){ + return lst.get(position++); + } + System.out.println("out of bound"); + return null; + } + + @Override + public void setPosition(int i) { + if ( (i < lst.size() - 1) && (i>=0) ){ + position = i-1; + } + else { + System.out.println("out of bound"); + } + } + + public Order getOrder(){return this.order;} + + @Override + public Dish getCurrent() { + if (lst.isEmpty() || (position>=lst.size()) || (position<0) ){ + return null; + } + else + return lst.get(position); + } } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/Iterator.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/Iterator.java deleted file mode 100644 index 0dea273..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/Iterator.java +++ /dev/null @@ -1,5 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Business.Iterator; - -public interface Iterator { - -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/MyIterator.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/MyIterator.java new file mode 100644 index 0000000..803edee --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/MyIterator.java @@ -0,0 +1,10 @@ +package edu.tongji.designpattern.ClassDesign.Business.Iterator; + +import java.util.*; + +public interface MyIterator { + boolean hasNext(); + T getNext(); + T getCurrent(); + void setPosition(int i); +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/OrderIterator.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/OrderIterator.java index 590f907..d158f81 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/OrderIterator.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/OrderIterator.java @@ -1,7 +1,55 @@ package edu.tongji.designpattern.ClassDesign.Business.Iterator; import edu.tongji.designpattern.ClassDesign.Order.Order; +import edu.tongji.designpattern.ClassDesign.Order.OrderAggregate; +import edu.tongji.designpattern.ClassDesign.Tools.Dish; -public class OrderIterator implements Iterator { +import java.util.List; + +public class OrderIterator implements MyIterator { + + private OrderAggregate agg = null; + private List lst = null; + private int position = 0; + + public OrderIterator(OrderAggregate agg, List lst){ + this.agg = agg; + this.lst = lst; + } + + @Override + public boolean hasNext() { + return position < (lst.size() - 1); + } + + @Override + public Order getNext() { + if (position < lst.size()){ + return lst.get(position++); + } + System.out.println("out of bound"); + return null; + } + + @Override + public Order getCurrent() { + if (lst.isEmpty() || (position>=lst.size()) || (position<0) ){ + return null; + } + else + return lst.get(position); + } + + @Override + public void setPosition(int i) { + if ( (i < lst.size() - 1) && (i>=0) ){ + position = i-1; + } + else { + System.out.println("out of bound"); + } + } + + public OrderAggregate getAggregate(){return this.agg;} } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/AddDishStrategy.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/AddDishStrategy.java index e61aa77..5d19962 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/AddDishStrategy.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/AddDishStrategy.java @@ -1,4 +1,12 @@ package edu.tongji.designpattern.ClassDesign.Business.OrderRecording; -public class AddDishStrategy { +import edu.tongji.designpattern.ClassDesign.Order.Order; +import edu.tongji.designpattern.ClassDesign.Tools.Dish; + +public class AddDishStrategy implements OrderRecordingStrategy{ + @Override + public Order execute(Dish dish, Order order) { + order.addDish(dish); + return order; + } } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStragegy.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStragegy.java deleted file mode 100644 index 1f39fda..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStragegy.java +++ /dev/null @@ -1,4 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Business.OrderRecording; - -public class DropDishStragegy { -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStrategy.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStrategy.java new file mode 100644 index 0000000..bd5ef41 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStrategy.java @@ -0,0 +1,16 @@ +package edu.tongji.designpattern.ClassDesign.Business.OrderRecording; + +import edu.tongji.designpattern.ClassDesign.Order.Order; +import edu.tongji.designpattern.ClassDesign.Tools.Dish; + +public class DropDishStrategy implements OrderRecordingStrategy{ + @Override + public Order execute(Dish dish, Order order) { + if (order.removeDish(dish.getDishID())){ + System.out.println("drop dish"+dish.getDishID()+" success"); + } + else + System.out.println("dish not found"); + return order; + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderConfirmStrategy.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderConfirmStrategy.java index d3b1b52..01d771a 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderConfirmStrategy.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderConfirmStrategy.java @@ -1,4 +1,17 @@ package edu.tongji.designpattern.ClassDesign.Business.OrderRecording; -public class OrderConfirmStrategy { +import edu.tongji.designpattern.ClassDesign.Order.Order; +import edu.tongji.designpattern.ClassDesign.Tools.Dish; + +public class OrderConfirmStrategy implements OrderRecordingStrategy{ + @Override + public Order execute(Dish dish, Order order) { + var iter = order.createIterator(); + while (iter.hasNext()){ + var item = iter.getNext(); + System.out.println("confirm dish "+item.getDishID()); + } + order.setTypeToDetermined(); + return order; + } } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderCreateStrategy.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderCreateStrategy.java index 34fca7a..e4fe528 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderCreateStrategy.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderCreateStrategy.java @@ -1,4 +1,11 @@ package edu.tongji.designpattern.ClassDesign.Business.OrderRecording; -public class OrderCreateStrategy { +import edu.tongji.designpattern.ClassDesign.Order.Order; +import edu.tongji.designpattern.ClassDesign.Tools.Dish; + +public class OrderCreateStrategy implements OrderRecordingStrategy{ + @Override + public Order execute(Dish dish, Order order) { + return new Order(); + } } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderRecordingStrategy.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderRecordingStrategy.java index 4d9e3c7..86578b6 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderRecordingStrategy.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderRecordingStrategy.java @@ -1,4 +1,8 @@ package edu.tongji.designpattern.ClassDesign.Business.OrderRecording; +import edu.tongji.designpattern.ClassDesign.Order.Order; +import edu.tongji.designpattern.ClassDesign.Tools.Dish; + public interface OrderRecordingStrategy { + Order execute(Dish dish, Order order); } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/AbstractAggregate.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/AbstractAggregate.java new file mode 100644 index 0000000..9225fcc --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/AbstractAggregate.java @@ -0,0 +1,28 @@ +package edu.tongji.designpattern.ClassDesign.Order; + +import edu.tongji.designpattern.ClassDesign.Business.Iterator.MyIterator; + +import java.util.ArrayList; +import java.util.List; + +public abstract class AbstractAggregate { + protected List lst = new ArrayList(); + protected int size = 0; + + public void add(int i,T elem){ + lst.add(i,elem); + } + + public T remove(int i){ + if (lst.size() > 0) { + return lst.remove(i); + } + return null; + } + + public boolean isEmpty(){ + return lst.isEmpty(); + } + + public abstract MyIterator createIterator(); +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/Order.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/Order.java index 8c7da3b..86f37a0 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/Order.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/Order.java @@ -1,4 +1,65 @@ package edu.tongji.designpattern.ClassDesign.Order; -public class Order extends AbstractOrder { +import edu.tongji.designpattern.ClassDesign.Business.Iterator.DishIterator; +import edu.tongji.designpattern.ClassDesign.Business.Iterator.MyIterator; +import edu.tongji.designpattern.ClassDesign.Tools.Dish; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class Order extends AbstractAggregate { + private String orderID; + private Date date; + private OrderType type = OrderType.UNDETERMINED; + private List dishes = new ArrayList<>(); + + + + public String getOrderID() { + return orderID; + } + + public Date getDate(){ + return date; + } + + public OrderType getType(){ + return type; + } + + /* + convert @undetermined-order into @order + */ + public void setTypeToDetermined(){ + this.type = OrderType.DETERMINED; + } + + + /* + add new dish to the dish array + */ + public void addDish(Dish dsh){ + dishes.add(dsh); + } + + /* + remove dish by dishID + */ + public boolean removeDish(String dishID){ + for (var dsh:dishes){ + if (dishID == dsh.getDishID()){ + return dishes.remove(dsh); + } + } + return false; + } + + public List getDishes(){return this.dishes;} + + + @Override + public MyIterator createIterator() { + return new DishIterator(this,dishes); + } } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/OrderAggregate.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/OrderAggregate.java new file mode 100644 index 0000000..d274beb --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/OrderAggregate.java @@ -0,0 +1,12 @@ +package edu.tongji.designpattern.ClassDesign.Order; + +import edu.tongji.designpattern.ClassDesign.Business.Iterator.MyIterator; +import edu.tongji.designpattern.ClassDesign.Business.Iterator.OrderIterator; + +public class OrderAggregate extends AbstractAggregate { + + @Override + public MyIterator createIterator() { + return new OrderIterator(this, lst); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/AbstractOrder.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/OrderType.java similarity index 50% rename from DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/AbstractOrder.java rename to DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/OrderType.java index bfb2537..d59fc37 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/AbstractOrder.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/OrderType.java @@ -1,4 +1,5 @@ package edu.tongji.designpattern.ClassDesign.Order; -public class AbstractOrder { +public enum OrderType { + DETERMINED, UNDETERMINED } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/UndeterminedOrder.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/UndeterminedOrder.java deleted file mode 100644 index 9443256..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/UndeterminedOrder.java +++ /dev/null @@ -1,5 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Order; - -public class UndeterminedOrder extends AbstractOrder { - -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/BroadcastType.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/BroadcastType.java new file mode 100644 index 0000000..b8c819a --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/BroadcastType.java @@ -0,0 +1,5 @@ +package edu.tongji.designpattern.ClassDesign.Person; + +public enum BroadcastType { + MANAGER_REPORT, ALL, ALL_EMPLOYEE +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cashier.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cashier.java index 3cb7a01..ec456f0 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cashier.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cashier.java @@ -18,7 +18,7 @@ public void settleComplaint() { } @Override - public void getMessage() { + public void getMessage(String msg) { } @@ -26,4 +26,10 @@ public void getMessage() { public void sendMessage() { } + + @Override + public void notifyChannel(BroadcastType broadcastType, String operation) { + + } + } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cook.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cook.java index 41f155a..db8f80c 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cook.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cook.java @@ -18,7 +18,7 @@ public void settleComplaint() { } @Override - public void getMessage() { + public void getMessage(String msg) { } @@ -26,4 +26,17 @@ public void getMessage() { public void sendMessage() { } + + @Override + protected void notifyChannel(BroadcastType broadcastType, String operation) { + try{ + if (broadcastType == BroadcastType.ALL_EMPLOYEE){ + + } + }catch (NullPointerException e){ + System.out.println(e.getMessage()); + } + } + + } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Customer.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Customer.java index 33cdcea..dc84810 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Customer.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Customer.java @@ -1,4 +1,68 @@ package edu.tongji.designpattern.ClassDesign.Person; +import edu.tongji.designpattern.ClassDesign.Business.Command.*; +import edu.tongji.designpattern.ClassDesign.Order.Order; +import edu.tongji.designpattern.ClassDesign.Tools.Dish; + +enum VIPType{ + VIP,NONVIP +} + public class Customer { + private String customerName; + private Gender customerGender; + private int customerAge = 0; + private VIPType viptype = VIPType.NONVIP; + + private OrderPadCommand myCommand; + private Waiter servedWaiter; + + public void served(Waiter wt){ + this.servedWaiter = wt; + } + + public void serviceEnd(){ + this.servedWaiter.clearOrder(); + this.servedWaiter = null; + } + + private void setMyCommand(OrderPadCommand cmd){ + if (this.servedWaiter != null) + myCommand = cmd; + else + System.out.println("ERROR: no serving waiter!"); + } + + + public void setVIPType(){this.viptype = VIPType.VIP;} + public boolean isVIP(){return this.viptype == VIPType.VIP;} + + private void executeCommand(){ + this.myCommand.execute(); + } + + public void addDishDemand(Dish dish){ + AddDishCommand cmd = new AddDishCommand(this.servedWaiter,dish); + this.setMyCommand(cmd); + this.myCommand.execute(); + } + + public void dropDishDemand(Dish dish){ + DropDishCommand cmd = new DropDishCommand(this.servedWaiter,dish); + this.setMyCommand(cmd); + this.myCommand.execute(); + } + + public void createOrderDemand(Dish dish){ + CreateOrderCommand cmd = new CreateOrderCommand(this.servedWaiter); + this.setMyCommand(cmd); + this.myCommand.execute(); + } + + public void confirmOrderDemand(Dish dish){ + ConfirmOrderCommand cmd = new ConfirmOrderCommand(this.servedWaiter); + this.setMyCommand(cmd); + this.myCommand.execute(); + } + } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Employee.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Employee.java index dbeb360..58840a3 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Employee.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Employee.java @@ -1,26 +1,42 @@ package edu.tongji.designpattern.ClassDesign.Person; -import edu.tongji.designpattern.ClassDesign.Order.Order; +import edu.tongji.designpattern.ClassDesign.Order.OrderAggregate; +import edu.tongji.designpattern.ClassDesign.Tools.InterPhoneChannel; enum Gender{ MALE, FEMALE } + + public abstract class Employee { // private AirConditionerAPI airConditionerAPI; - private Order order; - private String employeeName; - private Gender employeeGender; - private Integer employeeAge; - public String employeeID; -// public InterphoneChannel myInterphoneChannel; + protected OrderAggregate order; + protected String employeeName; + protected Gender employeeGender; + protected Integer employeeAge; + protected String employeeID; + protected EmployeeTitle employeeTitle; + public InterPhoneChannel myInterphoneChannel; + + + public Employee(){ + + } public abstract void changeTmp(); public abstract void update(); public abstract void settleComplaint(); - public abstract void getMessage(); + + //// process the massage received + public abstract void getMessage(String msg); + public abstract void sendMessage(); + public Boolean setChannel(InterPhoneChannel channel){this.myInterphoneChannel = channel; return true;} + protected abstract void notifyChannel(BroadcastType broadcastType, String operation); + public EmployeeTitle getTitle(){return this.employeeTitle;} + public String getEmployeeID(){return this.employeeID;} } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/EmployeeTitle.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/EmployeeTitle.java new file mode 100644 index 0000000..bf0451f --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/EmployeeTitle.java @@ -0,0 +1,5 @@ +package edu.tongji.designpattern.ClassDesign.Person; + +public enum EmployeeTitle { + MANAGER, WAITER, COOK, CASHIER +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/CustomerCriteria.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/CustomerCriteria.java new file mode 100644 index 0000000..2e0815c --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/CustomerCriteria.java @@ -0,0 +1,11 @@ +package edu.tongji.designpattern.ClassDesign.Person.Filter; + +import edu.tongji.designpattern.ClassDesign.Person.Customer; + +import java.util.List; + +public abstract class CustomerCriteria { + protected List customerList = null; + public abstract void meetCriteria(); + public abstract boolean isMetCriteria(Customer customer); +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/NonVIPCustomerCriterira.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/NonVIPCustomerCriterira.java new file mode 100644 index 0000000..be1d873 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/NonVIPCustomerCriterira.java @@ -0,0 +1,24 @@ +package edu.tongji.designpattern.ClassDesign.Person.Filter; + +import edu.tongji.designpattern.ClassDesign.Person.Customer; + +import java.util.stream.Collectors; + +public class NonVIPCustomerCriterira extends CustomerCriteria { + @Override + public void meetCriteria() { + this.customerList = this.customerList.stream() + .filter(p->!p.isVIP()) + .collect(Collectors.toList()); + } + + @Override + public boolean isMetCriteria(Customer customer) { + this.meetCriteria(); + for (var item: this.customerList){ + if (item == customer) + return true; + } + return false; + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/VIPCustomerCriteria.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/VIPCustomerCriteria.java new file mode 100644 index 0000000..1bcce0a --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/VIPCustomerCriteria.java @@ -0,0 +1,24 @@ +package edu.tongji.designpattern.ClassDesign.Person.Filter; + +import edu.tongji.designpattern.ClassDesign.Person.Customer; + +import java.util.stream.Collectors; + +public class VIPCustomerCriteria extends CustomerCriteria { + @Override + public void meetCriteria() { + this.customerList = this.customerList.stream() + .filter(p->p.isVIP()) + .collect(Collectors.toList()); + } + + @Override + public boolean isMetCriteria(Customer customer) { + this.meetCriteria(); + for (var item: this.customerList){ + if (item == customer) + return true; + } + return false; + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Manager.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Manager.java index 1bc9689..62c0d5e 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Manager.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Manager.java @@ -17,7 +17,7 @@ public void settleComplaint() { } @Override - public void getMessage() { + public void getMessage(String msg) { } @@ -25,4 +25,11 @@ public void getMessage() { public void sendMessage() { } + + @Override + protected void notifyChannel(BroadcastType broadcastType, String operation) { + + } + + } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Waiter.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Waiter.java index 2bed58d..c4a108b 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Waiter.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Waiter.java @@ -1,7 +1,21 @@ package edu.tongji.designpattern.ClassDesign.Person; +import edu.tongji.designpattern.ClassDesign.Business.OrderRecording.AddDishStrategy; +import edu.tongji.designpattern.ClassDesign.Business.OrderRecording.OrderConfirmStrategy; +import edu.tongji.designpattern.ClassDesign.Business.OrderRecording.OrderCreateStrategy; +import edu.tongji.designpattern.ClassDesign.Business.OrderRecording.*; +import edu.tongji.designpattern.ClassDesign.Order.Order; +import edu.tongji.designpattern.ClassDesign.Tools.Dish; + public class Waiter extends Employee { + private OrderRecordingStrategy strategy = null; + private Order currentOrder = null; + + public Waiter(){ + this.employeeTitle = EmployeeTitle.WAITER; + } + @Override public void changeTmp() { @@ -18,7 +32,7 @@ public void settleComplaint() { } @Override - public void getMessage() { + public void getMessage(String msg) { } @@ -26,4 +40,44 @@ public void getMessage() { public void sendMessage() { } + + @Override + protected void notifyChannel(BroadcastType broadcastType, String operation) { + + } + + + public void clearOrder(){ + this.order = null; + } + + public void createOrderForCustomer(){ + OrderCreateStrategy strategy = new OrderCreateStrategy(); + this.setStrategy(strategy); + this.currentOrder = this.strategy.execute(null,null); + } + + public void confirmOrderForCustomer(){ + OrderConfirmStrategy strategy = new OrderConfirmStrategy(); + this.setStrategy(strategy); + this.currentOrder = this.strategy.execute(null,this.currentOrder); + } + + public void addDishForCustomer(Dish dish){ + AddDishStrategy strategy = new AddDishStrategy(); + this.setStrategy(strategy); + this.currentOrder = this.strategy.execute(dish,this.currentOrder); + } + + public void dropDishForCustomer(Dish dish){ + DropDishStrategy strategy = new DropDishStrategy(); + this.setStrategy(strategy); + this.currentOrder = this.strategy.execute(dish,this.currentOrder); + } + + private void setStrategy(OrderRecordingStrategy strategy) { + this.strategy = strategy; + } + + } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/Dish.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/Dish.java index cc853b3..7bbb190 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/Dish.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/Dish.java @@ -2,4 +2,8 @@ public class Dish { + private String dishID; + + public String getDishID(){return this.dishID;} + } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/InterPhoneChannel.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/InterPhoneChannel.java index e3ff10d..0b2daa3 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/InterPhoneChannel.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/InterPhoneChannel.java @@ -1,4 +1,74 @@ package edu.tongji.designpattern.ClassDesign.Tools; +import edu.tongji.designpattern.ClassDesign.Person.*; +import edu.tongji.designpattern.ClassDesign.Person.Employee; + +import java.util.ArrayList; +import java.util.List; + public class InterPhoneChannel { + private Boolean status = false; + private List onlineEmployees = new ArrayList(); + public InterPhoneChannel instance = null; + + /* + singleton + */ + private InterPhoneChannel(List eArray){ + try{ + this.onlineEmployees = eArray; + if (eArray.isEmpty()) + throw new Exception("empty array"); + for (Employee e:eArray){ + if (!e.setChannel(this)){ + throw new Exception("set channel failure"); + } + } + }catch (Exception e){ + System.out.println(e); + return; + } + this.status = true; + } + public InterPhoneChannel getInstance(List eArray){ + if (instance == null){ + instance = new InterPhoneChannel(eArray); + } + return instance; + } + + /* + notify objects + */ + public Boolean notify(Employee sender, String message, BroadcastType bctype){ + if (sender == null || this.status == false){ + System.out.println("notify failure"); + return false; + } + if (bctype == BroadcastType.ALL_EMPLOYEE){ + for (Employee e:this.onlineEmployees){ + if (e.getTitle() == EmployeeTitle.WAITER){ + /// pass message + e.getMessage(message); + } + } + } + else if (bctype == BroadcastType.MANAGER_REPORT){ + for (Employee e:this.onlineEmployees){ + if (e.getTitle() == EmployeeTitle.MANAGER){ + /// pass message + e.getMessage(message); + return true; + } + } + return false; + } + else if (bctype == BroadcastType.ALL){ + for (Employee e:this.onlineEmployees){ + /// pass message + e.getMessage(message); + } + } + return true; + } } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/Main.java b/DesignPatternProject/src/edu/tongji/designpattern/Main.java index 3189d8a..291c2e3 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/Main.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/Main.java @@ -1,12 +1,32 @@ package edu.tongji.designpattern; -//import edu.tongji.designpattern.ClassDesign.*; import edu.tongji.designpattern.ClassDesign.Person.Cook; +import java.io.Console; +import java.util.List; +import java.util.Scanner; + public class Main { + public class data{ + + } + public class A{ + public data d = new data(); + } + public class B{ + public data d = null; + public B(data d){ + this.d = d; + } + } public static void main(String[] args) { System.out.println("hello world"); + Cook c = new Cook(); + Main m = new Main(); + + List ls; + } } diff --git a/out/production/DesignPatternProject/META-INF/DesignPatternProject.kotlin_module b/out/production/DesignPatternProject/META-INF/DesignPatternProject.kotlin_module new file mode 100644 index 0000000000000000000000000000000000000000..2983af70661ad375cc499ebc4da5a68ca46c532e GIT binary patch literal 16 RcmZQzU|?ooU|@t|egFVe02KfL literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..11c5022fcbb22ea3dc4db0fb8cdabbe39cecd201 GIT binary patch literal 375 zcmb`D%}T^D6opSZ{n1*TL7%{#x-d%@il8mCD!Nc+pEjYB(k9ZRzLzV(g%99E4c?a7 zxHo}AzAxk+$j|QU8^8@#DHb?RaFSrj5Z`H|{XN6t;&Q_f=2j|(WvPvN8v9BOucGS6 zoR+p0-9`+0;=K(0Ry&4uspQDLHBGCzR8BYMO?a;c!}Cr!SImk(j*g}}$8+2F!btug zWue`6kGBlziyenrt@YG+_V@a_74ITLh=`&1k3NRgG?I71H2k@0Rqb((fIeqhj5c*q j#zcH(AiDYl`yde@p^Qm`9vo0+^EtvHQX+;U$^h9fa)V!} literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f6a5fe96db261f8d8704a59afbd121a36efdafad GIT binary patch literal 390 zcmb`Dy-vh15QJxQ`GF9)6BR8TP~egRL_tnSh=?md*E@*`juHpi4(~;UM8N~_P>9Xx zN=m%ac<0l4NAma2=NEtrEKD+RI#LehQ+y&M}N$mxAIM92oVwP{w7q2 oLtGrl8nY7{4@74lpmzoV64sb8_`wcqw&^46B4tO|V-1k~0_QPiVgLXD literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..93caf45283b7318d9cbe50a9c44decae5658e7eb GIT binary patch literal 387 zcmb`DKTE|h6vfZ&>mRMv_i%A`QwK9TC=OOcr1%Eq?P(ioN}EcO`n{Y42S0!xO1v#^ zb2Wj(JwI~KfqegbegU|^D#Zf(2@Vo03GtOS+FuhEC#M@im=CogEDLSa^9Qs$!}rkU$i4U6sjJDA57C~Q7fk#^D4bp)`+~5&fU&P+>DM>ofG-c_tMlN zw@P}owzaZbbV*2`hS65)PEV~zf1jMU@=az45fSeHtCz5vVnruSBi3cBDvx6X{87^( mzTC$evlFuiqO%XsJA(iTYs?tDu)~_obA(-_>1lXXk5%FgJ~4Se8o5r*WvHeHB$t z=D0Mq=-0xkiFY#e8|4@tOWBOv8{Kw_H`1wAZ-w{LYM%GPxnfrQZge!&Ii8zg5W3-o zHQPeD&5o}b(ibz@T0W?$^5oC`WhdT5h7b|M{l7FatfrZ~7rN!oRVQnYQv~!s(_*x# lj4~$TGXv4Z2iQA_010JG8uVa~GMmp4_K^}X98dC@S&8KvP$(`6+!8#`F1+(t}a5$6ybHK9~01&K^dmG^T5j*ma-Q%3pec-<2mS zl)I9YW;;BhfGq3+N+>fl|3Pnt^0+n(2Y+n*dpkDhfu+Hap+^^b+M4VPWt==CpV@o^ zd!fKWj%@a)h&;uGIG&{l6wjeZHiWmxhp?4;3T=YSB}fY+l5`p;+4C4#oFvN!q;MrB Ze;0m*H4bMIa3&sWp&E^t$3o;6zX8c(*DU}5 literal 0 HcmV?d00001 diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator/MyIterator.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator/MyIterator.class new file mode 100644 index 0000000000000000000000000000000000000000..65e44486ecccd92e6df4de7a622802314a8e3d16 GIT binary patch literal 300 zcmZXP&1%9>5QWcJHC1ct!iPvU-ld>Y(3V1>>cXttU3G{F;ilx?h`ySOK7bEZ92F6C zG0e=zIrDS)-~R#V;?={8hbF;WYdhhsBRu)RT>6OJrEmMePog(krP@Slx=48G`h?mn zj*NCi&V-5|grP8h5cVFm?~jO3pJhe9-1EsP&iZUR%f~s)uMDZ+fscNX7 GN#h9QGEN}? literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..72828f138138923fe189e425c088b91fabadac07 GIT binary patch literal 916 zcmb_ayG{Z@6g{&%RuBad-<2I0YpEPw z83@m-h9!RHd&KH_{G5)2b``%=U8%;|34_@aUPIpNP|Y>vmej-iG+$V(Nk};)E?bt8 zme7)zbA<1UJHZFSvG`@XFFTsbi6&_k+E+B;ru? zku^JfgCF}k3g$^64l{)`G7Q!Kcm;;c?4B6Pe`KEQ0sHjtqF{*8Ukp6SCc8u#C(p>o z4&K0CC@_#98y^;tq&PK-mnj0pD_A8PfDg$BU?cJr*ePUU3Ta@Bq(#jl+4Br?bsm{1 d(~8$d$cf-r7_;Em6gW0&Yako8SVu1O8{hO+;A{W@ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2b747c370c8beee1b389787b3d788b895633735c GIT binary patch literal 392 zcmb`D%}T^D6opSZ{n1*TL3{ys>cT8tD1y%5s?2~Rvrn7QNvVk>so-O|5?ss!_)y|) zapl@vIOKfc-V^TE_va446=pdmILvUAVakx+Xrsd|!{qFI!w}D{R1DKn8@248E9IU< z)e$)^Z7sTuaC-2+Fb-So8J4AzJrCA2t>#jB-Ix~JK_CeMEt(@G}U{)a#FcR zRa+;uY51L#3+=b-;6zZ(+ciVJw!N#>gC3Gk{=8qd;#CxgkudygFvDyZ%{xJ#T2-y8 u15OdqwuZx~D3dfL$43t&7aw5n1R`XlDPd5<9%(V&6YL`=$8bOzq4)vyb7v_4 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e743db1587d6a3d30ccf826ef84f5aafd0cdfe24 GIT binary patch literal 395 zcmb`D%}T^D6opSZ{n1*TLGS_GsSC4op}260t7^fK*{5yjq|{_cQo+Y^CAgRe@S()p z;>xwTaLD<{y(iqS@6R28D=bpXaG2mI!JHw!QCj(1hS}Nqnju`8Ml#F`rRC%BQc3$P zs-DPkVQSH@g;k^fg`wXl$50ls8MrsP?G$gMQ?1?#@1@mz*$e0L3GutZ(NyPnX&Y&u zWNmDtbjx#Vwz+bfmA9gm?b|g&x-x^U<-HoCPyRl*?8K|c5F%oD_}6HL#WA~fG$zL<4@4IqVDAJ1B&0E6P{ST+Hr*raBPGXhKpG(X0n@~ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e80ece6d77ee50bd594ff80e054f5307d21b2a6c GIT binary patch literal 407 zcmb`DyH3O~5Jj)Ec|Zv4ijI;FC~!#uq9BMWVzmTq?<6KT%G$_wkoYVrBnm!&k3viW z6*V5|YR;ACq51rJ{{V1?MT!}A6YM3JGsG84D}Tu_J33x7gt=)X!@N*h-VU2e+Ivy; zjT*-vOf`Q#op$0`WC#&4tp0rkhQ-*Q_hQ_! w>SXP4h=7haK1M-X$v8z~XP4rzew8`(x};{X5v literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..598a4fb91cb22e5c14fde22f1162fd9c6147896b GIT binary patch literal 404 zcmb`DyH3O~5Jj)Ec|Zv4ii(yFC~!#uq97}(2+%It-bqHmQE-s$An{pLNECbkABC6% z8hSj^)!ZY`L-YCd{sG_&ixe~LCfG|b7l<#k(f(3kc67WE2=l%sfq9_~-3*T<*?U!X zO!kYuQr$*bJ^Ei5`UmXxc{Moh>YTi_HQ5za zy{)xrer#?@d0KnR+Ps_#r0agL6hhrk-*)5FCefO+sjUk3zjWa u9)}3{a^n*mJeM_QCnpa?CvOn13<4yqF=KGS7Hc-;5w?-C6WC!5kbMLAwQO<# literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a4d449990b164c697825b67aa85b822235fba3bb GIT binary patch literal 186 zcmZ9GJqiLb6oe=1Pr%CFJNQa_725^(1TlGpgyrp$WCgEg;Q>69xGPxb6azEG$M<~Q z9{_gH8Vil3!m8g t=+K&+kDrV7Lk_|@(=Y39e$fi+2~MpMPxU3TEu)k|HCj$ln2lXw{swqRIa&Y! literal 0 HcmV?d00001 diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Customer/Customer.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Customer/Customer.class deleted file mode 100644 index 8c2ba7128b8bf921f32e6a8810b3112f5059a5d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341 zcmbV{Jx;_h6oltx^8+EvuDAgmP~Z-bKr}&A5fq^9ox}=`vNp0E?nQ+}!2viF;w1tO zfGv$?KKad)Kfm5T0Gwl;V}WIc{R}HYdZmpH*M!B<@rDqWwpD~xrH#59x3zMQvL2Wm zRJM`BMmjy^9~g%x?Fko^YDW>Q>3S_%<#lJCWeCa{Q4Z4kn;D66^ucbG`!kn>{K1Z{ zQMY>9vHX2;+RGPNAVxws`(HO#?>cJcp6+u=!mED7~_p}W)rKXakzLzJ#gAd?CElz`% zy_&#}`MxkSke}_>H-Jkla?Eg;;V8qLklt#e{T*R;dbT0N%b`((d8v(Bjjxrm&$8;- z9G62a`;D}E;y)St7wrhwrD{gu2h(<1G|K7Lyh-nsHDcLI=N^I*YuhL*?knf5tbL#x zLjE+2wpNciY}t9e=;XUB5F;U6{dWanF^v(uG_6=yovJ-f5b+;Ohxqb*&Xh?629onn b&6E6ruERDtE)l?P(igN=+qA{a#LjgCD>TCB7|= zZYJ=M-;ca`AYb1fp8#&KO0mFkf|CSGLVRbe@%Mzq#pRw57JZ`#%hFi28J{cV9%a?B zIW7BIc6;f}#J@81Pi7z#rD{gud#hU`8Z{VgU!?cSSy6Oy7}m2ATh}Nj@@nu-)_$g3 zYp1mI>Xwl1`q92$ND9_1M2u%C2SA zvN3Mj&*vU6pAVxyC+;=45W{;M6<-C=(4|_2~#D6jz;>-J)DJKy!keq*j-dRM* Wm?>*;!7;QPJ}~dgyI*i0bJGq diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/OrderAggregate.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/OrderAggregate.class new file mode 100644 index 0000000000000000000000000000000000000000..36fb997cd5fed750c3342a5f4cce1259e78109d5 GIT binary patch literal 402 zcmbV|%}T^D6h^<>>5taxh(3WkbzznwBSIN*Rdk`uK5awHP*X`#-^-QY!Uyo7#M>%@ zOHJUA?n=9pnS!%l`dAw4(NgbTv#@MuMdmwl@U^U7FtJv`LP-O0LR zvsd+v>{im5F@MWA+#63=RH_|B=&fEG(JF7WeUu?6XT`FU-d|2i+_+Y`FP2(6rDaeH zLVnv1u2ENJY_mT-`nf(?%O_bNMnX9IcN0SShuX6C!O154o&*Po_}|7wym=yK%1KNa eNRD4X&nzNj%#<~_V1rpq=LDO`IT5y)5sFWce`^*1 literal 0 HcmV?d00001 diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/UndeterminedOrder.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/UndeterminedOrder.class deleted file mode 100644 index 7874a600c3ec28b909fc7f95db7fbe2c4fda2a86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 402 zcmbu5KT8BL5XIl@?H^rNPb}>1)WVbs9tUz_wP>MUpWTEr$6i*Ftl!H@u zXC)@^nD@&JZ^-A@`v-t??3b8ex4>S3DIuR3Yr>o`IX+nu(nYT{VOkrjZ--5z-Ggj8 zCI@xj%5Ev08T}7T!;|rZd9BqTLT^`VBb4@LWuIjT+F7yar1#emi94sX6OUGDe%f$= zisX_|-uHuR^^F;m4u5r=t>ufXkRl_@{u4#G_`~>BJFyN5^gcP;F62Sm;cjBwyDs_0bKQ)+-}5b*8q@%6oEF&KuQrixJ5?r^(4jtBIG^ z9H2*%*R`Wsc{&$J@7vy0bZv&ngWtEFuGEXl5F!$|`j>El{15l!W#^r${N@92h=Big p7=nwtV~yF#(F4)R8^kMv010c%7<^!hH5=yOdFB8B literal 0 HcmV?d00001 diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/BroadcastType.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/BroadcastType.class new file mode 100644 index 0000000000000000000000000000000000000000..072d919743a6d10e9cee3a54ee5387f468c9a5a8 GIT binary patch literal 1221 zcmbtTZBNrs6n^g7ty?K?711HSA<70wonnmHLYP>MNyiq3B#SZRvej8qTGDkS{wp1c z7>$O{{wU+QmqkYOlWUWEa?W|~InQ~yKYxAw0pJN%Gf=UhBZs_(DGiG{#;_!gN|#N&e`Wj-12$Qw(4=@ z1?^&fDEg)oHo3pUBTwY&CsYG|KzYr-lQE=9Uf{)R4AcMM@+!Z>pvLb#>PMzdW8!f) zqDV?kIMSu2-@jZL2yF-5gVGR1tkI11df1Jc?h8-!%e=4wE23itE{QdqGEl%nhNu6% zPX@AhWZ(vF8W_iffk|si47AW0;oBp$%Tj3`zhkilh4gW(Ekb0o#5_rN|QaSG)lX$)8C zOi7HQW-^aa&^Mkj5QJScG{?g@~{G4Qj*GloOR!A!%tYi?T~vsk2C;EQngEv|Z5(3B=wor-P%x9@!=mkCj!V zEcyU_sH(>VMW`Sl+L6Ydb9}zB{n@{MKl}u6h2t{vcwNF_2}c53*Gen@K_Gv6))y$W zOiTj1ZKdh^WIQ0-lY^8qwYC|`v@fj+@jO}ZBjp4x+Z0bCZ*+2_qL`dYbSAwgtD{yb zo%=jXMIExva7wz7BHI+$8IGh*s5j1d9g{4UK1}V%`;=N{oTXA}FHla%eG&zCYU9<9X^a1(DHZ6PZnTt7*2s7$o$pOEYPN6Wt&CD$Qq=WU>7*HqR0oSi0?q%J zfwycjveGM~gVLo5d9z(Ju|xW*g7nJV)%#FbK>O2P^Br z>PoP>9;~edpRWh&E5Y6M;K@qx1@>4`F#D0;V0=kVV+Ou?9GuGuUTfH&nHD&}OFjpI JSB&RS{{yhO#+(2E delta 45 zcmeys{)tKS)W2Q(7#JAL83ec(m>GE48Ti;4_$P|iO*`|fYi zXL!KG2Y-M+%6MlXd`Od~aW|QnduPtMch1@U{paT|057oVU>I{*Ji=oePqLWDf&&YS z4wg``QM9qlF!V}>Qom-f3dKE!Oj$Jq!>BJqvD0qti+Gps2b3A}RhGh0R0hHAEttVZ^l-ap;u;o+NM6lvfpTq9~=*QHdd2Kj2|g?6x9mq8&B3 zHgyxBbs);B6$M;|n!#xby)BZ2H)(q$5n&zSKper3&dTx&5nL45j~Qgp^T{ zh`FIQvft>7%GETlA8qsK+y|&347V?@TI(cQ zwCM9zZTgxf&*YTKtCGi>oEE%A22K=;-Gm-bd9I&kup@&F$eqc;O;mA@emI-{JoDHf zL*URjLXk%^qj_-o2iP$!2H?^-lqN0YXziXIz%7hYL^rtrucR^M{sj(S0kR9=o!-D) zSKwH0;8<7ScyHiTSKvf%;7k`_29wB>L`K=KBxQ!?{K^RizQOvATRSJnte#@<6hp_U zs5X_c=rxk(F-W8FX_2z?#IZnZOKFv5Vj7|B6zn4y{vXnz=% Py=B8PF3(atfQNqpx&|+A delta 125 zcmZqXe#sff$?3=9nB3<6vX%nZEj41DYi{1bJmCx2p;WM*Mto$SMu70jT>zyy>9 z0Y)GM3Ij4wc z7hpzu^7}^ftoi!>_yll;WsVu<84fcn2RyjO%>M@GoqUxAVkCr%|0ENZV}$6XX~nwgR2^`Ph|eC2xH+3OWhW*NBxmoS bHwFkA3)?NK0CUa&c_nvd^otgdp=jSf~TiCK-;@LPx@!Y~196fuXhnFT^nOJ8S z3Br~L8MdpU)pb-L-E+@riO6$hhbtvQ=~R3kMf>rVbEKn_ao2T2;c_Lm8Enz+_(4yI zL*5n)Gu3l`!5yDV*Qu+}lP<+fWHBFvj3qbnN!COd1=2~fh^LV8?7Ad1+b4A(m2gE! zF;*6Hu+LD;77b7Nl#;X5RQFw4S)5GNv+bVN2|H(j6qPeBrSKVc^3~D^0zY!%{90c= z(T=|Hq^EWmhD+sR2BQ+R$m(R(lj5-3J`rJqpJ?+l)u74!V;*{Xoo*WH%!?Q{^O+bZ zjKs&AREH}X?G72~c3O0(q#X%G{i+1i0PaaeU3G=}D58k##up+w#>Q=5#NU6g_HPJ5SnwVZls;d^1gTTLFRMz15b`?S)ls{21irKZ>A zZK<5EoPoY(7p6#5*(K7~agO+|c^+0h=!Q-4-qWXC%o5ggq>USxw=s)36B{;OW7Ebo zW^7EMz_5|);SQK%n7ZlfVbilbA8`O>F;2G7g zz!=79X23!rMjOQ#ComZ!8IFGE48Ti;4_$O~92dn!P7(sd;MD;q%y zv;^Xwh6y28HKc{SuVGTi2P)PW)Sbd^;aTYwL$1vCJ606<%>&ok=WVy?A39OQL*FWT zPP_d?nyi;RYzMwoY8`sP2hOW*wCpH! z{bnvZ5Ph>8G#szygs#ZdOQ`rxi}IR(C!?0;UEhs18K(ZhWjkA=UPtd;>PO0^SvgTB zq)73MaA^64*Soya7rNwkTKNHr*rY-0cF+kM{HZJYWnNf=711#RQ(_sX4XooK!{h&6 zDg$%aFmMC&2F76;m=H%=9Fs5^M$YFW>S9PVyuc??=}fk-=E~jyZ$w0Vy}yfcqjP<* zKO?>vHMg}&Pi2hWTViWQ&;Uph6Df&|l*9)Zn-!H4Qb7urFaw5J(&kBuPw#?#M(h;v zkEAhNrZXvhal+5xN)Nw=n6&Dqvh)RsQz!x-yMVt+7UK+sYq&1`)F(oTjH`4#Da zb0hg698s^6g0O*MW3?HDPk=!#T^q+%qbGAxym zq*O-L?{q2NrPZt}T@2avL>I$$J=w*meGDczowYzG(xPQ+L^;;uaT^)3#gP3CwKymi literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4db26b18b5aa4c2692b6ac45e4c18c04f6cd29a5 GIT binary patch literal 1112 zcmbVL?{Csj6g`g?3SEH>72TZ9A5$q)I?a}SfGk@k_#@Sspd^c*3Ouo-ye_3(;(w(q zaYm!rXa6YUeT6s{{UWbPU*Egu-E;1Fw?BV<{Q+PL>lvt6)o}-RH7sbjr^7%=zRWbT zIt5LMD5sH^^O}bH4C;$ryUws-^KN8?zUcK`tILOOPaHa7$OB>RdCqY7INq{e@nGl+ z>j@WK9#k1pjr#b!w%XdY-_)B7n{Q`Kb>w&vA2Mu}%o$Utdw!QQm zqa7{Iz5kBkY02(8M~>w=qGvV3z!kl!Ih){u?ROln14UQ{u436h7C8fXqQ6)& zr^?!I_jxBIiJQ|##eG(t!_{SwN~q9g}sCVpUkNft&C6&Vz80mMwJ zTQtj|kH9`7aSG)ltr#xRI~B)LgfHUq1iyhqysH<~@)smep-Oz>9R3RJ7-JL`u@uM2 z4MIuAhfwGNwDQ{W2~wZp@HE}oaShj`bX<=yD@fx8RwhE8Qz3FxzCk@GXvzuF$H>GB qU5yuW$?p_WM$}UW>IieqV=&1!E>0&oB!c9n=xfYylkAYi-2M%KTm#$y literal 0 HcmV?d00001 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 132e58288f5e8944e760e8b420a5e5e0fa31a1f1..ada72af3605ff424d50c5faee3efba0effedc661 100644 GIT binary patch literal 1008 zcmbu7T}vY|6o%jQ!)kZBe!HvQ=$#+nT&Q?aQLwsKRRoLoY3J-1nI=P$3jJAL310XE z{88dbEh1Vd?hZ^c=j1$-fA$oq^MrkiI{X)jPs$)A&RObPsOq?7lk zrj1vB`wjk&rcB^+<6BEPu|_5x>3pl7Q@wdB?_`|ulHx0Gl}_uyNUi;`NTB{7Gw_y8 zPF8wlbWr+bLf-6^>DdnbQ9*h%bhQ%-Ba~1U*!>6B0(;+~&RD(a6JZ?%zANFWfbRy% z+)i*5b1%3rZ#_WV^GAUTz(XNf#3Z-TTLGp}<%rMi9o`GE48Ti;4_$P|iO33GEjgD`#|*MmD(wX7 z3AuMfzO*hHWz_DT$xkv&xux*Pgad|ne(1OYaixR0$S9$-u0 z@%*;)u;zgdcnW4j+{?3n!6L<@b8nnAf~N#fww;y|if3O%Y%pD*UAV7l3ON z>lIe}D6s~byWb#ozo7IL<TD!4owT%QVFoegeG1y``j4tS$q@bAsMWX^U0ZjLu6=6GMP TVXZJv;5u#;Q@Y7`3AcU&pp*Uf delta 131 zcmZ3+`JPGi)W2Q(7#JAL83ec(m>GE48Ti;4_$SKOPTs&M&BnsO%E(|e@uSXUE+*Sx z21N!Ypc)Wh1VW%BkYoe$^uc@v23D=@42&Cr0!$3-K#~n8%mCED0VH|AY*q$N1}-3v Mk%1dXGBNM~069|)hyVZp 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 0000000000000000000000000000000000000000..874d032b0f5bc996a33b4986bd3c3998139ebdea GIT binary patch literal 323 zcmb7uV%d0&hUfV_y7Ns`od3>$Zu#;8K zWL4T)_Io+#;QwIk584rKOVy0RThn%0G|K7Lyh-oXV8ptY&TS?ncGmVzY_vPv6Y{Mc zhgv=9P(BavrjzfoK#YVS{#i&^hP3FVX~j#`soLWL5kDG+c)6A}WhW*NB-fvy4+ar3 W)|4?gaKc(lcY--`c7#*b2*nXQR7=VL literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1cebb79eb38aba6d934d10084e4364d593b5bbd1 GIT binary patch literal 3113 zcmbtWZF3V<6n-{Ivq`#b>02mJpuQj_1tM5LXep*8U^Pu+6N^O!x9K+Bu-OgS4N~x3 zzxWT-A3(nXBdy4c`blT}1%C5qIO8zlb2poo20GKim(AUC&wb8wo^$TW{`ud}zW_La zZz9-((Fn$HHjHj0Wt@v3fKl;sUOe7x#%mat@m2_LM-WCzyiYV^5NYw4l#z*`4etnu zsSvVZe}liC0xTW@Y3h1Z_uks9D+nI)sD;2J)bab3Y8Zb%s3RG1A~TQKjJ&{}J$dJutZ$hfKC6P!`-DL#|& zxq>h7rGl@7l;cceZ`)xHrMsE!R|| zs!h(bi2WCz-dVD4bL={7f5KekfbwppTOY5l1bj$ejTi0rpxi>&d2ooy3#y&gu9IiL zbbq?)o-SG~EBZxP2yZw`$Zqo1ZJ_uD7e<+_{fkWt0oG}oU9=so#B{AHiF)%`x8fPz zT!#s3YKatUoxI-61k1w7FdJm@5)(3=+*J2?6J*`Zm!Kq4smsZUOloo_nWW+z!a3a$ zSMW4-+zN30kJLTRY_`N|-C>TD3yJYua%!t1WgQABv`!?_iSx;+%TvkB^ zZhi^@e)z-$;mRk*1th%Wu3zSglf(1i-QxZMKuYjLfYzI_6-Y7vPw?G?KlT8DnH4nM zLog=YgB%;+YT!OX623>v1B7QfA}eVAl_o{P#KHS$5j*?1XqE6A+R}$&%hXjRCjW)YGd<$4c-j~LP?qg&?JBOW3sV{re!@Qum{hdhCg(fc?*NnKevYy)nL zp4g9&|3DiR?VcG}K~$(o({19`a&09mFuF{fPL@b;j@Hhu^6PnmpRm;V`5|?BBwi

%u|6K0k539#i~}% zQ%yUXma+3LcHM%1>CxXy=;FcNTL>;8!qsk?MKwiQez$}%mJXDh+7W719-^H! R>0?cN;UJyg;D!&0{{cRQM}q(W literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3ecda506614a8e6cd0ca6a44784d1faa1c735732 GIT binary patch literal 326 zcmb7hR15(^v_I4ZCtgeWj03ZciVd$B8aH+HZ6uOJZ$`T_l@ zXs-2aFEh-{IWuQwzP{f-0i56$vG2l3G!Pfk zG|ZZPjz;{2j*#h!SYL**worB8An#xqHIn@QF$}WcAcGtoV=p0*!`1~uJwD&0UP~qQ4MV@ZCO7_j z)w(kx<~`pN426MIVz_u6i{Ocm=M*Uo{0X0rcp#1cA50mlG6?P2Gp_OiVPxNqo`j zKDF2+hGe@lLX+;BrlTi7`$irp77as+(BMRKi)4YkXUa&Dt~jSlFy|8qhb@tG&PaSj z^+l2;LNhXlZK^EOtB?gWR<-m~A&*d^9xSpl+H6zMY9 EAF!96)&Kwi literal 0 HcmV?d00001 diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/Main$data.class b/out/production/DesignPatternProject/edu/tongji/designpattern/Main$data.class new file mode 100644 index 0000000000000000000000000000000000000000..10af70e3724855037a944184a8302d80c508a595 GIT binary patch literal 502 zcmah_O-sW-5Ph4*q>0hSR_h0dC_S_lj5iNTF9lJE^`PXwO_sVP-AJ0=U3|hX%HN*w}H=b+OCf=qFkA&KZtkku4)#sM%abnW*GU zJ#(!^siHeB)g`4~NhS4&;iUgh?jT{X$3-R>TCr4OvRq6>`N*d^G3~fWd7ki68vIAv zW(+FIxaJJOtx}>K=e()}vAxypdZvix^B;<3nTl&^x_D;jvpIhux#mPv`lhI~i@gAA za00m4r#)6~T+1?qMkC6(nnm~1xkxp`;mSIOMt_jtm`-ie)ma#tmgYz1qDkH(G=fD2 y_`}mTu;DwbS3(wi@($%t1ncCxzgY;-B4k*jMokbBvap4A{dTZfM@^)I4X_{am~;{V literal 0 HcmV?d00001 diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/Main.class b/out/production/DesignPatternProject/edu/tongji/designpattern/Main.class index 7489e230209276977032e992a60b9e00cf23f77c..ea09de96c511721c3eabe19d57a19fb9bb73d560 100644 GIT binary patch literal 1238 zcmah|ZBNrs6n-unbgSiUFc>KEBEp715m1yN2qPvYW0GJn#7||r8O5%}w$u2d{GcDe zNa7FhM;V{nk}wm7AKG*7d3(-t?zzAJ{QL!A4ZAwJkx!$5xfCAhn8$*KMID{UYcO?a zN-pVmjAb2Ztf=r+4No*Y6%acD#%tG=e#xtTY?P(tm3mJG5lVUe$6AE#Fq>D`PS|u~~7vENe|O^xXQXZPsL9*WEKK z45jaydzS4MS++qbFqD5^KD9nsrenEv^C0wXw_c23Ex*n}12?$Ya8+QrJw!xoH$pY{ zr5|{%S@OIOL=_Ewb!q3=ATx z;hBNwSf}emI*vE-+4G&6hN6KDybxGwJCHWr3XHW)QH^lOxB91fshbA2@KW`+ZD0o_ zfxhcuzd1gY)$qS%xGqz-1I268Qu*LZ5K2xu;Wb%58(*;PnftumkasMt2Io5vweqi7 zKs!@G4(Vm{H*ZFNl-CSx$BZd(O?rI!v1$9V;<=Tk;|R>OCdXmLLQB0X6S?JYUxjEH zQ=u2HrodpnwanGRVv=vJn{N~70ArBle~2fOQc!lzT|j(`+{65LMaC3z)Qva*BN*i= zjk~x7)6hAJE@ja3L4glMGxqhrv*4 zBgt63hMhu+<%apsp^tz$Le3DdK*$x0VH5YGmR4g}TJAHxk1WP9!KQMUCDT!IoMHA9 p9w5QoAxu+CQh&&3<(s8U@!Uf?8RmmI>ZGBURnnCGlo`qah`;-?DZ&5% delta 244 zcmYj~O;W;85QM)M0xvH_el`54{KNyWC8ih6y-rS4l1h>H0gICw7z&H yQQ%S*402wSeIv?Hp_*ldkMmpc_Bf5g5qBr1LssC+Ca?AWl^AN&#aA@)Wb+T=dL51c From 5a74657b03444b6439c1b656d501e866173289ae Mon Sep 17 00:00:00 2001 From: Eyisheng Date: Wed, 30 Oct 2019 16:05:39 +0800 Subject: [PATCH 2/4] commit --- .../ClassDesign/Person/Cashier.java | 4 ++ .../ClassDesign/Person/Cook.java | 4 ++ .../ClassDesign/Person/Customer.java | 4 ++ .../ClassDesign/Person/Employee.java | 8 ++-- .../ClassDesign/Person/Manager.java | 12 ++++++ .../ClassDesign/Person/Waiter.java | 5 ++- .../ClassDesign/Tools/InterPhoneChannel.java | 6 ++- .../src/edu/tongji/designpattern/Main.java | 38 +++++++++--------- .../Business/Command/AddDishCommand.class | Bin 375 -> 1002 bytes .../Command/ConfirmOrderCommand.class | Bin 390 -> 768 bytes .../Business/Command/CreateOrderCommand.class | Bin 387 -> 764 bytes .../Business/Command/DropDishCommand.class | Bin 378 -> 1006 bytes .../Business/Command/OrderPadCommand.class | Bin 165 -> 750 bytes .../Business/Iterator/DishIterator.class | Bin 893 -> 2363 bytes .../Business/Iterator/MyIterator.class | Bin 300 -> 358 bytes .../Business/Iterator/OrderIterator.class | Bin 916 -> 2400 bytes .../OrderRecording/AddDishStrategy.class | Bin 392 -> 983 bytes .../OrderRecording/DropDishStragegy.class | Bin 395 -> 0 bytes .../OrderRecording/DropDishStrategy.class | Bin 0 -> 1737 bytes .../OrderRecording/OrderConfirmStrategy.class | Bin 407 -> 2245 bytes .../OrderRecording/OrderCreateStrategy.class | Bin 404 -> 922 bytes .../OrderRecordingStrategy.class | Bin 186 -> 358 bytes .../ClassDesign/Order/AbstractAggregate.class | Bin 0 -> 1443 bytes .../Order/AbstractOrderAggregate.class | Bin 377 -> 0 bytes .../ClassDesign/Order/Order.class | Bin 0 -> 2714 bytes .../ClassDesign/Order/OrderAggregate.class | Bin 402 -> 892 bytes .../ClassDesign/Order/OrderType.class | Bin 0 -> 1137 bytes .../Order/UndeterminedOrderAggregate.class | Bin 438 -> 0 bytes .../ClassDesign/Person/Cashier.class | Bin 1008 -> 1076 bytes .../ClassDesign/Person/Cook.class | Bin 1411 -> 1455 bytes .../ClassDesign/Person/Customer.class | Bin 337 -> 3381 bytes .../ClassDesign/Person/Employee.class | Bin 1521 -> 2239 bytes .../Person/Filter/CustomerCriteria.class | Bin 0 -> 638 bytes .../Filter/NonVIPCustomerCriterira.class | Bin 0 -> 2125 bytes .../Person/Filter/VIPCustomerCriteria.class | Bin 0 -> 2094 bytes .../ClassDesign/Person/Manager.class | Bin 1008 -> 1712 bytes .../ClassDesign/Person/VIPType.class | Bin 0 -> 1117 bytes .../ClassDesign/Person/Waiter.class | Bin 1190 -> 4062 bytes .../ClassDesign/Tools/Dish.class | Bin 323 -> 467 bytes .../ClassDesign/Tools/InterPhoneChannel.class | Bin 3113 -> 3374 bytes .../edu/tongji/designpattern/Main$A.class | Bin 638 -> 0 bytes .../edu/tongji/designpattern/Main$B.class | Bin 677 -> 0 bytes .../edu/tongji/designpattern/Main$data.class | Bin 502 -> 0 bytes .../edu/tongji/designpattern/Main.class | Bin 1238 -> 1572 bytes 44 files changed, 55 insertions(+), 26 deletions(-) delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStragegy.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStrategy.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/AbstractAggregate.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/AbstractOrderAggregate.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/Order.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/OrderType.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/UndeterminedOrderAggregate.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Filter/CustomerCriteria.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Filter/NonVIPCustomerCriterira.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Filter/VIPCustomerCriteria.class create mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/VIPType.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/Main$A.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/Main$B.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/Main$data.class diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cashier.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cashier.java index ec456f0..c929f0a 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cashier.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cashier.java @@ -2,6 +2,10 @@ public class Cashier extends Employee { + public Cashier(String employeeID) { + super(employeeID); + } + @Override public void changeTmp() { diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cook.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cook.java index db8f80c..d8ccabf 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cook.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cook.java @@ -2,6 +2,10 @@ public class Cook extends Employee { + public Cook(String employeeID) { + super(employeeID); + } + @Override public void changeTmp() { diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Customer.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Customer.java index dc84810..cf49f84 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Customer.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Customer.java @@ -17,6 +17,10 @@ public class Customer { private OrderPadCommand myCommand; private Waiter servedWaiter; + public Customer(String name){ + this.customerName = name; + } + public void served(Waiter wt){ this.servedWaiter = wt; } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Employee.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Employee.java index 58840a3..7f17463 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Employee.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Employee.java @@ -20,8 +20,8 @@ public abstract class Employee { public InterPhoneChannel myInterphoneChannel; - public Employee(){ - + public Employee(String employeeID){ + this.employeeID = employeeID; } public abstract void changeTmp(); @@ -29,7 +29,9 @@ public Employee(){ public abstract void settleComplaint(); //// process the massage received - public abstract void getMessage(String msg); + public void getMessage(String msg){ + System.out.println(this.employeeID+" receive message "+msg); + } public abstract void sendMessage(); diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Manager.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Manager.java index 62c0d5e..d6d7c12 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Manager.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Manager.java @@ -1,6 +1,10 @@ package edu.tongji.designpattern.ClassDesign.Person; public class Manager extends Employee { + public Manager(String employeeID) { + super(employeeID); + } + @Override public void changeTmp() { @@ -26,6 +30,14 @@ public void sendMessage() { } + public boolean notifyWaitersToService(){ + if (this.myInterphoneChannel == null) + return false; + return this.myInterphoneChannel.notify(this, + "new service", + BroadcastType.ALL_EMPLOYEE); + } + @Override protected void notifyChannel(BroadcastType broadcastType, String operation) { diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Waiter.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Waiter.java index c4a108b..1807523 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Waiter.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Waiter.java @@ -12,7 +12,8 @@ public class Waiter extends Employee { private OrderRecordingStrategy strategy = null; private Order currentOrder = null; - public Waiter(){ + public Waiter(String employeeID){ + super(employeeID); this.employeeTitle = EmployeeTitle.WAITER; } @@ -33,7 +34,7 @@ public void settleComplaint() { @Override public void getMessage(String msg) { - + System.out.println(this.employeeID+" receive "+msg); } @Override diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/InterPhoneChannel.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/InterPhoneChannel.java index 0b2daa3..f142211 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/InterPhoneChannel.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/InterPhoneChannel.java @@ -9,7 +9,7 @@ public class InterPhoneChannel { private Boolean status = false; private List onlineEmployees = new ArrayList(); - public InterPhoneChannel instance = null; + public static InterPhoneChannel instance = null; /* singleton @@ -30,7 +30,9 @@ private InterPhoneChannel(List eArray){ } this.status = true; } - public InterPhoneChannel getInstance(List eArray){ + + + public static InterPhoneChannel getInstance(List eArray){ if (instance == null){ instance = new InterPhoneChannel(eArray); } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/Main.java b/DesignPatternProject/src/edu/tongji/designpattern/Main.java index 291c2e3..2fff527 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/Main.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/Main.java @@ -1,32 +1,32 @@ package edu.tongji.designpattern; -import edu.tongji.designpattern.ClassDesign.Person.Cook; -import java.io.Console; +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.Tools.InterPhoneChannel; + +import java.util.ArrayList; import java.util.List; -import java.util.Scanner; public class Main { - public class data{ - - } - public class A{ - public data d = new data(); - } - public class B{ - public data d = null; - public B(data d){ - this.d = d; - } - } public static void main(String[] args) { System.out.println("hello world"); - Cook c = new Cook(); - Main m = new Main(); - List ls; - + ArrayList arr = new ArrayList<>(); + Manager manager = new Manager("manager"); + arr.add(manager); + Waiter wt1 = new Waiter("waiter 1"); + Waiter wt2 = new Waiter("waiter 2"); + arr.add(wt1); + arr.add(wt2); + + InterPhoneChannel phone = InterPhoneChannel.getInstance(arr); + + var res = manager.notifyWaitersToService(); + System.out.println(res); + } } 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 index 11c5022fcbb22ea3dc4db0fb8cdabbe39cecd201..8c123190635e593e3211a5cbed1380d6343f78e9 100644 GIT binary patch literal 1002 zcmbVLQBM;=5dO9;JvdIQ6cj;s{=NrrjQ2juc(H;dymVsI$17}k*!J+6q5N4z zD*nPS+U-b@gt3k;uT&_cRhQ8w~ArR=D& z*Jmg-wU7*zj*8@IG8stIv#95Ni`gPX6GQWu29aF8#0rfvpL{*c2YrZS7Wt_%K!PRvlYm8-lupXSFa zKIH*C>;!m*=KGE48Ti;4_!$}4Y%=pQOY9gKm^CI&Ynr@(QJIZ} zft8WLW#UDbG)4x2ti-ZJ{hY+SbbbG%tkmQZ21N!Ypnecw1VW%%Ajt;g>4W(U46It) o85lPL1(+Dvfg~GHm;tDP14#0K*{lql3|v4SBLg>(WMbd}0HFXC{{R30 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 index f6a5fe96db261f8d8704a59afbd121a36efdafad..8eb940f73450d59377c35276f9fcb1b5b0ecd4c0 100644 GIT binary patch literal 768 zcmbVKO-sW-5Ph50rj1c+{it6TZ+?IQ5qnTPSQW&gf>O_GveuPmS9X))-x5T@gFnC@ zB~D`wDjtHDoqca+-|Rf*{p0lwKnqJAMle-F8PgtSFzce}VveD*E0s+47+NbG5v4(* zRqsv)k+8C-?s<|3qk?vyTYHdE!MQM2tKf=DO6{z68Om)P35JP|RN^#^uZ6kf*L`9d z9Ubz1mm4|6Iay9_rDZrN)@?tvq-t%@)^W^LL{Z&H6Q7w#n4H^TC>aqlY!%b|IRS$! z9z>WX^x@LVa31eMrzR9fayY}>9}PF|_<;MU!1XbYaTg0d7Exz7F63a5nHUcLr|tnz-yA>Erk&bE$HHKlc4>rm3vfVt1eeY#p*_M5#md_H z3)o|puhHpctV?fdbO&a?sxS(l5Y=N0`BdZ delta 155 zcmZo*YhzYA^>5cc1_lOm1_3SxW(Hn%20nHMentj1o6Nk-5<5l)W{rsn?UPLyHJDi# zSSRN&`lSeDC6*=X=OpH(>-#5Vr6!j!C^9es^@0E+5CYW!Nj4x)AIxW9VAa~rz_<}8 jz{J1~B-wz%3_uMWK#~W{W@X@H-~#d(8MuKY69W$bXBiXe 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 index 93caf45283b7318d9cbe50a9c44decae5658e7eb..f7525dc0bc30d2e2dd4199d1e9bf50c4b33557a2 100644 GIT binary patch literal 764 zcmbV~PfNo<5XIlNwP|ClwQBu)@un3Fi0DD_U{pkk3W}cBWT;!3M0S(n*Ahg*gCD>T zB~D{N)Ju@ShWB>zo6KY0KVIJe>|oi(7^dr}V8+HQ+7{+4%nMZaRHTx9ft}SZ1*x0F zQLnGufQ;%z_cBRHN3J)J#vEprdqLX7k$WQ*U+u143sk%~Ac4uQis&p2Z%JRt+W|YR zZtTm!wbW{)bF-4%DI;)NtlL3qm}-pc#bGF;!1XlAgwAz9I=6NO%9?zEtzyWZ0|;33 zKz^F=|CU!ru*_S@*op>$A%Bx%fwuo0_i?Pf)Fg388Y{dD3A{tF_^h$oXIff$?3=9nB3<6vX%nZEj41DYi{EQ52Hko;uC3cJq%o-CD+9n$_sAfBBpXne0jPlkNb-Q$tPGqCTtFTp12>RlV&DM)+%Fb) 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 index dca44ec05006ac8ccc9dd8b2bd04be20d0606989..d5633684c50a4a673db81a63e36dc792f7016237 100644 GIT binary patch literal 1006 zcmbW0U2oGc6oy~7rD@YZp=Dzq3^uOXZXyCrnzSM=Xt&)|+t8-&+Doj~RU21!Qt`Kt z_>gwN58y{3jFSRM}~20Ai~6tRWzDNKNLoeqB)Oap(DRH<;L_=mwzs_QIUVeC55{AaxRsc8ow{i zxZ55wlzJ)@4E2GG#A!0S7W$H3Ps!65sDMw0TuWp$a2TL6u+k^^=}6 zhWELOx+e%jGtBfoR=Ss%Sj{YIKj(h#=+hozhi*rit_)BB$%P7yRkA*lU8HZVv-=aQ zv-cf^ujwS0#wTg0La9}_^wh|=eLEc<9+O3hG^dJ8{L Y`p0)E3gTFXWqT>d%h+^q$XCG1UxW1-fdBvi delta 159 zcmaFI{)GE48Ti;4_!$}4Y%=pQOY9gKm^CI&Yo5H2QH70# zft8WLb>c4W(U46It) o85lPL1(+Dvfg~GHm;tDP14#0K*{lql3|v4SBLg>(WMbd}0H=Z$3jhEB 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 index 4ca8c50f6ba7f56b15508e57ead3d4472fb44779..817e0bb1384c7d35faf7347bd55f45cef1d2502e 100644 GIT binary patch literal 750 zcma)4%TC-d6g{2^^CCRUYj{=N!60E#RbtVK1p{<5Do7w$dlGB#C=;VNLHrhrs!|vI zfPNI>I3OWbB#U!>@AWz7+VTIVzyAOn;&TTLblaH1x`z!9n@wyru`STbbfnF_&IG;< zbX>^XrlYZuv36#Z-l;s-St|R9a_*!o$qSu1o5~wy*!nIoWwY4RzgDB4``xlcl7rZ| zTY-aW+$(DnCr?NrweiEGCO;B5+^NQXKltu7-TOAy0&@eC>R-iVsIx0IOjubQ*hnSU zDlrwD(+CAlEB(EX#uAwK7BW%kNS+VJI?97Dd@v0@ zr8)v{%2nWf%Sda+8U$yWCC)KZ%xjF@-XDmb_>G!}x`&{*$MmtJ%oEp3;gEtYO13G{ h!6! zS#HbnZWc?pBg=a_-cRELET^!N!G~BC<3}0#+?8cb$2}bd9qS4`o?o_og@vMBuA8Cf zRt_DrYzI!otyy7c`>t82T0yWLnamyWj@M-ctr~<1gT+JZTg$A6PSq?rLCA}AiSbrg z_icqj$Ms5gOb&`>kh6}c!!|nxkn1g zf>);4fuiHu+x4S8+ka^7RcRS6diz%Ok>xvbZWxo{ffJCtJMMe+fT%%WZnB$F`Ei+AGPfzD%3;e19JNj1cDKl_ZC1z-p-}gI+ok%;#E1s9YPl72 zXYbJ7mr?!Uys^6^&Uba|xY^T-)S7ZjUftif?>jPgLo)hJyqhB2z!hv57{aiDOSo*{ zHH_)FZ{PtwHn53L6wI!E;pI$o~$NS1*u|Maye1 zkj&4^@dl5-(nG`R;s>2;Ka$8GjVyOEMFT`0!~~fqcsm&*()UfCBt{geXg5hs3F-yo znikO(tGq_r6sEa~wk_g_&shFB#XN`h3O#H@`6=||GbFWNco(bcjr>L;_851p!G4`S zJxGk+WqSnSmoNvjYrva$s z-)#i@^p@bIxFK1EA91y#iWxco%x0a4lN?U#$jG>5{rmzZ+kJ~N7h71DS}I5JQ)+OH l{5Ko?XX0PN=oFu7foX_m@XUV(_jM7>T;stssZ#3n&cE;-925Wm literal 893 zcmb`FIZnes6o&tC7LyRNu|q|dAjA|D6huf6Ktc*ofKt#+l2I~|v5{wt;07Fq0veDg zH~@!2JR3(?NfRNOx7puYe$D6C`v-tstml!&QXVNR+gP!&YGaKd+fc4D`wXdCz0Htr zdOgWdYAIKq2R9w*Ux|)Gm1@iD3a2f673OgC@S&8KvP$(`6+!8#`F1+(t}a5$6ybHK9~01&K^dmG^T5j*ma-Q%3pec-<2mS zl)I9YW;;BhfGq3+N+>fl|3Pnt^0+n(2Y+n*dpkDhfu+Hap+^^b+M4VPWt==CpV@o^ zd!fKWj%@a)h&;uGIG&{l6wjeZHiWmxhp?4;3T=YSB}fY+l5`p;+4C4#oFvN!q;MrB Ze;0m*H4bMIa3&sWp&E^t$3o;6zX8c(*DU}5 diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator/MyIterator.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator/MyIterator.class index 65e44486ecccd92e6df4de7a622802314a8e3d16..62b25b543c8bb1ccc22ca8d81ce1c3c2edbee8c7 100644 GIT binary patch delta 128 zcmZ3(^o&X1)W2Q(7#JAL83frG_}Li*CJMMKaHXe~IF}X`rRJ3|GH@5CmIUM%XO?8< z=P@#{Xn1OdO$=S*%)-LRz|6qHzyPFK8Q2&Y8Q6iwFfnid`J8BcE(UI}97F{V1234z F2LSg$60QIM delta 71 zcmaFHw1!FG)W2Q(7#JAL8Ti;4c-R?uCknVvtX!qd#KOqH%)r9H0Hj$N*cccY*nz5; Q7&w3!!s2A$0*i110OrLAbpQYW 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 index 72828f138138923fe189e425c088b91fabadac07..30d417a27d46e9de4bd821e79914b907d739b1d4 100644 GIT binary patch literal 2400 zcmb_dO>^5+6g^K;qS#hG+k~_skdh`iZX2a(n*vTl)1;v(&IefU?KJ@>xnfByaRF95gkSsH`5 zp27eY<#IzVH#4|}CAr+z@j(h7;-fy~(^$qGXDMo{lvE)p8txe8DbN z&B*th1J^9sq3d`RD~jyEGuO&i7_P@Ab0;X-L9(toPGCD$WapWq97X~|g#+tb%dAFj z*(|tW#1E+=6IoF;um#rJJ};jdGQYx& zdnBN(`6bdGEV!P%T|L~hgU_wKGA$zof8Q!UvI1A`Yep@4;)Vhn-I2Ig4Vg6z%}q*d zMSe}w`i^CewSpW~>OepIk9D4@1yURRi4|_!-?8axcJ8r2e=)N5zuvMcH8pg{j*{;; zvvb`^(llBuKg|Sd)gZ7vVq`))+HG`Q%Wg^v!WA&+)o7x?oikuH!U=kw@$m?kEzdD` z_73cQImAD88oMj0v&&mY^%kE=dg@a2tHHj#;l_g)YgW%VFR2^2fOP}I7%^}T=MB7t zaUJ&!Y~T|E55N<%aN3iu*58(^3tullE2!te!FRiR|&fa(V_@uPUDQ(EXlgo8wH0RL+&aCx^)1ATM`2_i zGJwJ`An|s6b2o6ks2Bydb;toa7lXB$d4?*|smyz9G}{EjDA#l18%TG<`-he22$y(g z4}!>0p~&X)FF=v~rEN5RALE{_=6fG)7jTjL3GRO6Q|0rW+$)HjcmYK&YEFFtEq6t3 zuX6i4Jyg6c{h)IlgoX@KFo@evoFQf&#w2kk`E@GENZ)t4lQEK!h~Fe9g&tsR-6FXq zEHBaa9;UfUZd=SFea3UoN#;4!*XUs*N>8C{&!DNl@ms>GH})Hg(UZL6HT28$>47qK zmluMZKCUwLH#ExBi!G_2VnV{?z98OX?Mq7V8odhshJO49`bJVOkru}d&=HCNW*ed~ zS;8%_Tv>iXV6lk+%g7RrC!hu&uwn_nlvI@w_!$@5sHEloS5|x+bK<5!ra@sKR{Am( zo8d3p1i#b-uR)oX=$-VV2pr-iEBh6ThH8H=&hS`7>ndHJ@}pDft>ZK2NOc z#Jmw>$__GH4O715I1vI;eWFk5e7}OLHFT3tS$z)+Q>30sJX%Q;Z#5OslO!BkrF7Ri df?vXD4^F)?c;=14{apl;Su&XOFk_wz{{gw4D`x-z literal 916 zcmb_ayG{Z@6g{&%RuBad-<2I0YpEPw z83@m-h9!RHd&KH_{G5)2b``%=U8%;|34_@aUPIpNP|Y>vmej-iG+$V(Nk};)E?bt8 zme7)zbA<1UJHZFSvG`@XFFTsbi6&_k+E+B;ru? zku^JfgCF}k3g$^64l{)`G7Q!Kcm;;c?4B6Pe`KEQ0sHjtqF{*8Ukp6SCc8u#C(p>o z4&K0CC@_#98y^;tq&PK-mnj0pD_A8PfDg$BU?cJr*ePUU3Ta@Bq(#jl+4Br?bsm{1 d(~8$d$cf-r7_;Em6gW0&Yako8SVu1O8{hO+;A{W@ 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 index 2b747c370c8beee1b389787b3d788b895633735c..a48e2a2d91fded279b69ad9130416860e5f33b39 100644 GIT binary patch literal 983 zcmbtT+fLg+5IvKdi%Cnk_1+5J2t-{#m3RoM)Dl&y6oJ&Byl?E4*~r*vcU_e);WyeB zka*|^^rI@qHm#yQIpSsK?ChR1voo{5|J?opaDcZy8d&%76wf?7_wd5QOG4{VC)#}= z)VI20LgOe66=7+p6Lp-OPn0>8lbAg#!!(fbSQ?%0@0|^IrY+%ksKQLRG>N8Kgv#nD zxsc8&lZc~OT01CQ;!|c>)mm|4LS??HAT^;*BJnW{2il&EoRLmNmwke#zN;W}9QJCf zn)Yd$##ZDq{c40Fhcc6XcYX?2D&$~m%L?w#2r%eFOSg953+NDx59&jN9b}EHVP) z$9TePPX5ATb+%q_=Nh%%4~8}5be}C4H5ug+8|Afo2_|3(okG^bGFFP5Rtxsp9Winn AX#fBK delta 125 zcmcc4-oY$->ff$?3=9nB3<6vX%nZEj41DYi{1auTPrksY!py?JI{80iQZR!e0~1gd z1Q>x3C=4XofINLLpMil@YdZtuMxX!_13Qpp0}3+$HE;k)9x$7gfs=s?$YW&S29it+ FJOH}>495Tf 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 deleted file mode 100644 index e743db1587d6a3d30ccf826ef84f5aafd0cdfe24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 395 zcmb`D%}T^D6opSZ{n1*TLGS_GsSC4op}260t7^fK*{5yjq|{_cQo+Y^CAgRe@S()p z;>xwTaLD<{y(iqS@6R28D=bpXaG2mI!JHw!QCj(1hS}Nqnju`8Ml#F`rRC%BQc3$P zs-DPkVQSH@g;k^fg`wXl$50ls8MrsP?G$gMQ?1?#@1@mz*$e0L3GutZ(NyPnX&Y&u zWNmDtbjx#Vwz+bfmA9gm?b|g&x-x^U<-HoCPyRl*?8K|c5F%oD_}6HL#WA~fG$zL<4@4IqVDAJ1B&0E6P{ST+Hr*raBPGXhKpG(X0n@~ diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStrategy.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..e91771ea46db77e6473d2f9fff3421e604795871 GIT binary patch literal 1737 zcmb_cT~iZD6g>?w17j3L@oPoH3X%xR2)gPTKM7K6RamwRg;o00%=CtV$#iO_hmzVK zqWcT>Rri6d^1&bAkFq>7K?xhyilqbIo1rlJ+O7Em)> z)2<9wW#p&lU1iR!`?0`sO?io9blBMN9Z$u6BWy`yR1`YZK*sSxrgG+!n5c2=EJvP- zo+wvGo*y=xg-Ev+{CK@?B571(yCPtz7s^cxNZ%>6V3G3b+jx_jZI3BY*~CoG)t*2*YAIkxs;ReB3e3`#x>3u|_GP8M9UIl;tm=fh8EM=5+WDOn z42dY&tk}4NyPQ{#Q&r4bv=}F@%efOc-ISZEszX-aeU literal 0 HcmV?d00001 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 index e80ece6d77ee50bd594ff80e054f5307d21b2a6c..1b3c137a7be68099b4d3d82246f6030dee6b6f34 100644 GIT binary patch literal 2245 zcmbtV+j1L45Iti{T1#Hy5QhYD2{v(z9PF%P0)fZ`VkssLvU8C!Rq!;H26=61SG7BG zMPCAZ0k6P=DN+T+bH0I3p@1{HlCzFosZHf!=hEAK`b}&rol%fU8(CS|3=rX5m8%9|`1^UC-4w1x8DATLPJi-&6t< zHP=%cz0S4@HsyAkk~1~GA=_IraLs-o%;+6A6sXr!v*&2vYwfyDQ-yBJ>q@Ov;5n7H z48v+9a#ngFQNz%=7c^DyP&NFZ>3XerTk*Z`+@Mp}fz+ziFAG@ek!tibeScp{=U~(K z+o4l+!<}+EgNR7%zdZNiCJdLWRY%}zI@<(4nl{N(Aj=@AKwv2yM3Qmrp0<^AwukXw zJ9I9iuZDSQ*Sh!vPi3x!RsazdiN_3Xz7X|&B!#Qnfs%CpvH8hLw z<=q^59af*ftrtTbrcolJ1Qt_aBr;myR3lKV{~?^f?NZ9RJdESeHbKQSlN}jus7H(! z``kC&x0H_eXX)YDsL~)2>3Tnms(jS%(f+kq+x4CMf$M38Ovw%n@@0=6NcJn!e%zen|QqV8n%UM|#b+3TI-&^6_&fBu5Ml-4oQmP3Xs!!G?Z} ze?_+2byushg|7rI9s7S0H-QV!*W+V5&i9w?ijV9FXSN=Wr@3=D3(ncgzd`&G{eG2W zE)wQoUS(rQ1x(^BXI>S~aWuw%5G>1iY5o8s8wJxjs66pY{^9&j!Y<{s*}Psj!C K$GE@3&-owEotb<9 delta 118 zcmX>qIGtJa)W2Q(7#JAL83ec(m>GE48Ti;4_$NBgnf!%GlZ}Oem60KE@-I z(=~i1-c#iX$yU!k%1)zsFabx5G;kHnUR4t zAEcF$!3ZS9jihVhT5UFV1`b9B19XYoY0Qia!4vN})d!^}1GQ)7r3aT3C6=V7S28Fv zumF9*$iN2l5)+UHngAp@fjoU6%?PAfwYD=bZUjqn0ZBHnAR7ZWkj(>80Hk?=JVpjS z27Vw3((DE_j2TFC>}Ft!+|Izf0mx=zutpfb2{u3hq6lgLP&tDDgCN*Y4hA6xVX%ut Hz*GE48Ti;4_$MmNo_w8AgN=oOm60J}@;oM|$yH2> z!3>HFOh82-zzBpuSs=*<4*Z)W2Q(7#JAL893P)*x4C47#Y}8D^in7OHvsbrfc|2v{U5?$cqryk9FOrt z%u_MX#5|8+HG&rk!Mfurj2CLgfuVO?tF9L;$IU22cdcsEa67iCFmo=QEfzC5)`T4E zBhxCc5YAdn%gwQ2GPTFdMytZiSix$VZ##{WX%~%Bosr2xt8CQw4BHaF7Yw=YEk_|& zFe@G1Z8fVkORty?3A7E@HSMOpQ8ygtwHMNN?22jY>m|pvjk3F5t=eYQa82?_oNeB1 z_W?F8)ww@z(5O@hlFa*Z)Qx6U-znA1vYU~amBqQuy4jE^Jv~oXP#LPG5J~2_N`2Ti z8?6J8HNq?h$I<(H_3du|lVsogk3N0*lG)v-zTb5jz#D$|?5p^|8VoG6Z zaC6sf+vv*m)u3TS!#E})c&T9lSH)S=a1*yQ+{HbG>}9SRAI$ml$t&cK}&eMG*$_kpIc;g3gE#Xhi5N( literal 0 HcmV?d00001 diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/AbstractOrderAggregate.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/AbstractOrderAggregate.class deleted file mode 100644 index 28880ae7ba536d0e824eb3415f8ceaedad60c12f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 377 zcmbu5KTE_g7{;Hs*FRdTcepyase>6E6ruERDtE)l?P(igN=+qA{a#LjgCD>TCB7|= zZYJ=M-;ca`AYb1fp8#&KO0mFkf|CSGLVRbe@%Mzq#pRw57JZ`#%hFi28J{cV9%a?B zIW7BIc6;f}#J@81Pi7z#rD{gud#hU`8Z{VgU!?cSSy6Oy7}m2ATh}Nj@@nu-)_$g3 zYp1mI>Xwl1`q9U@mSy;$7t{DqhMbC(1d_mnyr4=UGlgUo0E0oAtN!Rq+yx1>%U0o3^`Uxvkte+x2+Xvql=jt2uPA z*yLJ{=Q?v(s8-9ao~4h>ym*_lE4DYUAetIoXYh+vlid9|yJF>QJDZkMFgDBF8OT+O zMtR+EY*~k!F>lLepp%_>Zn`QRCrXy*?})@hsnO#^R%s)u(tX{aS!p>I(G=X`@hRmV zbOVw?HES_DJG{8b>>H*j8Y!4cb;jJJs|Xo21^niTu@uI!cB+r9!27w>QC&tKg+(ID z^{shE@#__1*H4Lx0*gdc3u~xVx3G$qTEskk?Ieqi#q2CoHp8nr3WT_$G~BJZ)Y*0Q zI#yrVt4~=QPyP>{)AhqQon0WP<%LbxbBv<5P%1fAiBg=-XJV~dbBfkITN*9lQ{Rv$ zN5iYQtm1)&b&P0u2_p&y{kO>Pf(6Gh_9S~6UdBZY=P<0{JT7Q>h!GW^XxP9b4WHsO z4WHu+4PW9b1$svbYE-iZ1J^Zdf>pQJ5%y?ur5fw$l}i;B-0X;|>B&$qcLKVuLLK62khnm1$ zhu{=Oj{$eLgD)HlPGjsCaI_tK@mTQqp&B!cQ^M}15jD7+) z!T_?g6kCl~kB=Q75y8WDo-s-|?(+->wjqy5s^cb^_^HBV$oMU7Vq}~a#sl;!SQ$Tn zrr6o}(l1uINc=f3FkC!(9TUhtuVXlDrB1W;`BZtKTmI_#A@ER&sc86i4Qf)Hi_mhrf zm<&`bPt%*0)EA-^QDr7b+9GNSt+M>9n73ETFw_ItNx4np@LKVXG%Ad5g|$-0d_NM# z9Jmrc(;cb1b~g;Q426|-hKaV86dlvNu!&|ktW*aB+)EA7G=}$f`N@4RB;evX5fL`k zL|+ev*rmAJGFFSW?XzqQv+XeIJ4C=gPg32MM=BF=*46uvo7dt_lu*DJ!@)rE{lC^B z_6{y#1*;k08pHNLfZbz%(_&~0vHMRbdZWl#hN&PskEd2eJW$4x7^jt?MeK`J{|i@b zVuN1UqwfZNGs|=&TcnJWXXHm~&tQ+P?UVIf(Ze{!rS1UvGG+9Em?WDmZz1n`GE48Ti;4_$Mm0Om1LQW@BMsWn{3NJb}rQnUTQ} zNNZ<0CKZXPYVAj{0axCJ2*MzZ+n0u@V2SxURaf2AyO zMx)thf0Xgu(zq`AiQDAfoO_;op69&u*Y9sX0c_)G3NqGJJitQ*%L*Q;&`=PYp2VU` zPF*01No2&iq2MutTCKHfZ{O@UYE_2kb+hjq-q;xoEu(KvtbudPJU}a?FN5 z>Y8qwcWt^+g6Pfn3I6VXKrgnov2&mKFZ z;A%mS*;VzX!By;}{>BJ1R literal 0 HcmV?d00001 diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/UndeterminedOrderAggregate.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/UndeterminedOrderAggregate.class deleted file mode 100644 index c9b638e118c331314b70701beaca258062e05cba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 438 zcmb`Dy-ve06orq|{6Gk_;sp>JFyN5^gcP;F62Sm;cjBwyDs_0bKQ)+-}5b*8q@%6oEF&KuQrixJ5?r^(4jtBIG^ z9H2*%*R`Wsc{&$J@7vy0bZv&ngWtEFuGEXl5F!$|`j>El{15l!W#^r${N@92h=Big p7=nwtV~yF#(F4)R8^kMv010c%7<^!hH5=yOdFB8B 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 5c18b235c2127e6f2b454b280757424f07ff4ff6..b4e134af47337f0332784ad01c83735d6a4777bf 100644 GIT binary patch delta 367 zcmeyszJHzm8D!WQWEmOQY%=pQOY9gKL^XV}63Y_xa}x8? z^@B@_GV{`{Cn^$Bz?qx@RFN8zTfoS`tf3h;ajq5%b8d0^ z#G_{?FK1lpYRA9?gbWO9TH4zg7&ii0ObqNmk_#frzzXDX0Qq82J||EH1lSn38F&~N zfsmJhZ?Z140wd34KW1@8Fk4a(tOq2|0K^bIj0^%0m8xP`Wd(tD0X+!RVG6`dlbA)6 zrID}tOklOh)$jlbeQVo1I*%*VhrL?=STo`GXdF>AZr+;06;%3 Ai~s-t delta 258 zcmdnO@qu0G)W2Q(7#JAL8Kk)wm>DG486?>mq!=04Y%=pQOY9gKm^CJv6moGUXC&sO zr-tMfOuVi&nVs?U#7&};FEK7P(`R4=LIws_t?dkq8-WZa26iCH1{P#y-~h6DAPN{b z8MuHvMh0#M*2#Lz3XB|+{h39Xd7wOAFpn3?69V)2pgeIfj~~jD0rB_+7zBZ4u>noA s2V&;QjLag2ieUQ`fc^m41F;Xp5@HYrk|34{gDB92j0|Ex9utE&0N0lx{Qv*} 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 81b26a08d90287afcc7f93cfac1070f24b40200e..ae495ee60a4579ca012db8d9142798ed6101e99c 100644 GIT binary patch delta 463 zcmZXQ&r1SP5XZl7-|FhRW&YSLGi}SPbuBH+A}SA2hsawIbd*@k&`nB$j?rHr`-g;d z2s%XPPF=fp?+|p3W^IKahWD7yF!OoCyA9oi_Fujqp8%|3RYm}rAZC!2FdM`i3>h3b z87A@)<|QmJ_%|DNqf=o}jp|wLs#a{)?0WH_bJ4Kt8{KugBwMX^^ZeSf_I4Pe|9cpM zC#N)H9k$vG+{hhud#1=+m-X)3m-EgF{(^!c(vBu%Vv7ovP*R{_S;C5fGUWTJkYdga zPwZA8Pyl{2{{YsbOn^eS{9A<&5{8I1kB1Q^qJE4Z0!9%<%z5QHQ=Ct(^0-HlKB*pQ zE`>F+GK6TlOh<5@#ds$9$IdXYGmLunG0&irA?6d2z_{}vZXIW7FOz%*`EpQ^?|V#$ m#4?hYpig(V9vC&Gkfzt&+9bIJ=#&S*rELk^-D`?i!1NErzeO1U delta 425 zcmZXQ%SyvQ6o&svnocuGy)-7Z7q!}pX{@GRK*S5^R(BP_We|xK4I;%C@CnMigF6vd zf(swOr*JR0@Bze=Iy+}^&iT#^GvAyi>)zUW|9O1_u!#+U9BL-!vA|I`(Lhr`M@wK4 zK1Z7)V94(Dlm1|jLHCD;i7?MDq9i^)zP=fL2C~Awox;&&bQgtJ)DC-t+kO&nOH1o! zmuz%Umit=WTeh)+(1wF9$EuArtTS}wqt=lR+E>ir`u{I!pO6?Q!*p>lm=F{#qL4D9 zYy>Z0&s1ozDP~7a9eJwlzXKSz+5x9i0=kRisyjCLjOch31P`|a}Ye{cT=Fab|TFBY27gU8KS#FCgj z5szi@SkbYHH8ERn#<$pL!lsTbd?%J}>v)RqH9XVNiXENS{Gj1S9Ua)w@RN=%{H);@ z9o=I5RfEZ3Sj8ap3fx~c3!I^IdEY!VQ+d6I zxqT;P^T5fu2WA*@-%X|SW)NiLr_?(41J6yBtO%#&6lX3+RBVw!J9G}hqXT;T=1P#; zi|botMwrcoqqJ8jn6AyRP#eahV&J$u2vW*0wdRvo>!z*V3DpR=f5`2prbA9$)!&j8 zp~N0It`kl(bPrq%>)fcQ>f3s)-nSgMiWg9#DX z4OW48;+vsqy;w01R7^-jsEUE1(FtfS#q3bk^53{s40*Xc;-+n9oM11*OXV_Fqr5H8 z%Lgf8IVF>3(~M!Hw%}D6GtAd!b0HpcCE=C&Y_)ywpxT#uOFyGh%U8Tb+-25#UJ4Z8*` z^c(n8JQCo3K%}so!;kkhvDBX$d#>U#lWWVe6%er@S{V!#AxT(Q0u#Z~? zUZ7t?-ar8(44Il*{7Imk)S3xRwkl5n@!I zj+a`e^EISXmYW4?&t1}qv!CgNJP?cWE?G-qbymT-BaU!YcVyVBu??!It7D+H{aV%i z2DfQL_0Y`*h#?}j8_gp42p`LlHl!SBFUpZNpB!mN(%1q<#deFHU(wqR*+po)o;(3d zHoQS3`5H7tlS6ON_@}fR5Wl05p4Ski+fXyw&`uYhZu&YXf0GDEVu;?v+S{avZY8*b zVZ}48cwz!KR>9RJdxFsWs<2{ZtQbTNHj_Y3N|9TfCAf9!g>YRKWGv9nqHyhHJUs1W3&jV4G4y0 zimXXYDOonTD#G6P4z15bD2GnawvxPk3?cL^YAKK-h*KImDG><@m&{mzTB21KBOehx(>Ea_vn0_B&w<5fLDPfujGenpr!uc8qGmGE48Ti;4_!$}4Y%=pQOY9gKm^CK9XDpiR%__^r z!obSNU^00lv+Cpp9PE<~*`2A~EGAjtz}vodfpZ~=LY4BSAHiGc?IXfP3N 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 0f48f420b70533ee07b0d426e6f69dc8f1240740..c401960acdac198dfc71830581b3854bbb309197 100644 GIT binary patch literal 2239 zcma)7Yg5}s6g_Jj3lte*2(La;NJ(m-jryQTS|_AnLgK_cTD!?i`)RQ^LLjd^(wZ6n zlm3jh)7Rufe?Wg!r*|dUD2~(dFz9O6_nvdly?0mt{QK%}0C(}igo)3lFon;j@CCMJ zY4@Iqukf|rE1S5F2l{Q>z(WJyFiiMCO9Tw%nrL-xP6XKA!1;cFZj9+luWgFTZ%2BoT(#!KpLwOUWrXP4?JxTJ&)op98O zg7lU9vNzy69+NLA!fxR6R+ERS(d&qEiYwKNNfMk4(}U9bcyfkn+#ja`LG?#W59>9; z8*zBdy59|&V&ByrFZ2U$YflSHSg|mNX#+bJc2QxtN`+CO3V7#0s8hcc&g8K-iANUp z@z}r<3so#zSiquzrxu=}X5kv<8Mel{1%|W`-(|{2CugEbLy_95_d+GwG#Y-FewdH- zxxRf&H-nUgxy4Xq}n!>#hEA4oqRv5!#o1fFb$tG7XTy;usq2f}}fZrQ& zTHdVR$db-QIlrC;%~3}utTmkyd$r3ntA>sFAqpVHbAjJTaoxNLbMT#Exo3~8za zuLZtkrhiQN$Nej(#U&6G?s;{W?t24tAKZLH->BReuK&MZZk4`9CViz0c|PocXAl66v0`sLjuR}32u)F&I|{yj|k4fjxzof-;vdg UIz|KEQUSlD^(3wD(Er{40D|2~ZvX%Q delta 501 zcmZvWT~5M46ot@ZSbmj=sD$-R>M zB@ZmQ6ylK8Cf!nPrG7kkfmCm(Jn~hR`QLSRCNV4hNC zK_JG&1)JWUbMNiBkA8l=e*ieap$Cpe1x4(Yv0ugkgCAwqrBh`>Z5_i_IFZj%WKPE- zXF3d(z8)viWkxYv{c(3gHOhoblkr50k+Kx|B%M9Rk= zNBsfzr7x~kKj?$YXP3XjAK`MT`_3e0Vq4aNm$~~qeY-~N953xG@bGKV6j zj$jaH^61CeAxh8XF^BUxSeVzlmkqphhyx!#ad z$@r({1;nmEuI9D;x?=JqbL<((pWl}Eq>1M+Wa0|mG;tMg2^1GSFAPFo?vjTsuMrGp zajl5AxhxhjYNCwm2Hr7o1MeERX<`YtOuUDRz<_pWwL;smDs~W>ctN{fM%Bb^teAKo z9|&AHNcB2&ny6t#;MPHG_piJ_`4G-J@pSuTsGIW=drF3$&z|ZOPSZe2D_tcmVeztL zSV=a=iPCi9HkMko=yD;4ReZ=omtqY^x|`PR^=(xT*Iht zrcsa01m=^`JfYc+B}ob=M$dIzgX29wo!V%CEg4kRS0s&(ke*UEIvnlj_j>HJ13nxE zJ~Ht!J~c6pQGwG@u92ec-t%^pRf%Si6C*dIPWiq-zS%t)_?#S6Ja4DP=`@#ImyeKs ztQ5KVJz3wjzj*d;O1I&tU@A6TNVGvM^lf)DDd{m>y}zptcNs(OZ=0mP4O^CuQzQ8c z2EGtD^8`On%SYhk{(6{Tj~Ds30WuK!q2l*>o-D3{Yv0UI5Z`l?!cl&+k~?#);M z$1%*4&`%M++V~FA(cR?C%p;`skQR7M|JXxc3O^&e2P1`F(fFmP(*Po#=D z-M#Jb7P)E)3k+}ITNs%K$RyxnD)WgP3xpe^fp*)6RQ?+0hcsyJC-Di_9R1zFXSjmu`Pwx77DEaN*A@Z*3_y^MbJReAlmwKNCsHg?B?uldhDO! zqyK=u^u=?uN*_Ev_w?`ZkMMZZZ#GGHV`Y%FjTQ!wbE*AD1S|EIJ68`yqa{@rElwX$JiHc+kwDhMb%qY=($@v zwpCYwz2!D#7%Jbj%8m?zn~}*{Res>P)`IPD%UWMrEw_TuYbd|$+qBrSBw#j_3cG88 z0XtYuuCEpk1l0v7P2XW^1ZfCdK3oKW{#u7FX;nj6+g+B;NCyKXe$0`Ljk=sl@}HU) z5KVzx)ob}R#l$J(iG32kxFhdM6E9%c#5KHS;yT_IDBSS8FbI9wqz2nwJs8U3odVwF zaHD`R6J^{q@SceUyl-I9#1cL*@gXV#gF2wq3T?-#*g>C#-A0kkfOI#4s%SyMHZktePi1D56_qViG+tB(oVch5(B^cG@S%v#BzX_+%%1*>fCn^?WvJHuTzBobDm|e^1ghYVBhJ z^GP;Od3LxYMPaAtc5dIn@gAV=-DrSq8LX&pDHEhydEqBf6{ z_uGlr?z=_l)*Tg0wGWmOWl#-$+ucf9dJeALYpTO-wjrN?HYt4vwk#c|O7Tkuz7{z5 zls^0ABXIipewbj57x;$(`XKZp#qWz;SsVq&%*?M4KXH=6QGT9>EXZa_KVJ4rz zjAD$zHOKErN}rjVd4MBrq@2L=g+1g2zQ+hBrXbG1%G~S^$n@R+@!vnw_jw>4 zz?A#Qdx8Pa(^@3tETJ^;IQ=GI;3Q6QMwku-J$s2Zic71B^xqgXaAx!`qzXA*y&Zb7 ugby&NVUrT(6S-vwbBg)|vny8s literal 0 HcmV?d00001 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 ada72af3605ff424d50c5faee3efba0effedc661..7fcf6234745881322973c6f7e0f8f7861af1985d 100644 GIT binary patch literal 1712 zcmbtUZEw<06n-wRgO$Cysra&271&(WZ7zmo#xYEmfRcbS`o&z}$~wz!)0P?ji9cdr zG-f7#@T-YG%6M8TV;ReahS2t&p7Y%2dCuwm_51q|02|ndV+ac|M6o!8J2BkFy*N@x z$C1HO6w6WEXNYWSQggN#rc#9ie#ljw%Z6HZEKN4D={<%}&ZrB9(Sjz$i&nELtO~E{ z6qzU(HLmY*OLNzLFy!oOHp6;B)LW`!$i{)D)`hJ#q{$seSW?aD+_rbTkXjO!ZAi7q zC2t5T%Mce$Q#aZ|?C!W5oFT*ztL+m(QE8eC!IVod(lYDZaVgruadeS02!m_VA-INc zio&)DowA#DgJIYfvfhnNOT*FLw_kIOxY-q>EUZJV<|e1oZy6G0hu1z7x#_D*bkcJ~ zK?CwfD|n0~!|Fe@mtk#?s=Pl543o|F zuB85$`-T)<@3$^zOvNyCTlMNoJ@qtePX=Lgs&!=FvqIrrzE~=}e3Q>JY+efL94a)y zov~v0G}t`-wW!Z1UCtc;`#U8ro9-FRZE{a=Np6jwe2adNT&Q+l?{U2)Fh>W?5FI?A zD@`8abRDME76SAGBAKOcV4vwJ0EMn`FB(P|5hQ3m-O0iTMrlR)7{fSW&_RGnA8U!? z%>AFhM7+ST2cdLc`Vb6PE-oDFTR3%b;Z)zk>8|W`qUp*$Lp9l>mUY!KT=msnyLj)J zzI$Is(zodqLY@=J%vS_{A{;z&A2JicF9;nYe2mBuF$;Qa7@<2bPt9APrY-g$Cw+1^ pyj&I|(3`mBZ}HR%_K~;jAfA$oq^MrkiI{X)jPs$)A&RObPsOq?7lk zrj1vB`wjk&rcB^+<6BEPu|_5x>3pl7Q@wdB?_`|ulHx0Gl}_uyNUi;`NTB{7Gw_y8 zPF8wlbWr+bLf-6^>DdnbQ9*h%bhQ%-Ba~1U*!>6B0(;+~&RD(a6JZ?%zANFWfbRy% z+)i*5b1%3rZ#_WV^GAUTz(XNf#3Z-TTLGp}<%rMi9o`q#$EW#REK4u%zIT3Jpc^(vwK5 z6x0QxltfnS>k1w-NS*pV!)Al`LnCmV!O$}L+_whKkr@QsbBvm8`u^+4W$bg$cO8R{ z9DF+B6^2B!)r=A-Yn@k(ce`zdt@rchIyUW)`wTCO`n);hn%n0L*@ortW;p6{@4)QZ zymNTg6bC#TIxINSEn4TqArc|}$L$ESiX`q}by~<1z-RG literal 0 HcmV?d00001 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 c5b0bbf9a8796ba431367a1ce00373b5a1a77b19..5ac043adaf98915fe85deddf238df7794a4160eb 100644 GIT binary patch literal 4062 zcmb_fjaCy!6#fQ~Kv>FOCAQTTTd|l}qZV5=R)qkH2KiOAYU{E)hJ|D&-Q94?leDi< zPt{XBrw`DF>ghL|B`gp$6qA$Lnc2DbyMJ@<%|HLX`5VCZ*hpd!H#>0@V|p0xL>?1* zHra_O+|sk#{XAJnVg~p0ayEgvB)Tx4uf1BaX=h64%OEJpydn?NaRag|%3y{DHH&=R zTK0*GHuKBgQd-i%cf9gmxWx|v zS7RQ->o;wC!tqykXg1oUvzC-9`B_a~i)WiNfeXzE8Y33C*Bs4$wj8S|5z}kH_Ecq$ zVzY;XnTUACa2WN$)>7bMlZM+*kI?J&^t8n{G;VTHRXs~iIXXdf)$a8hwJ?$_%uwuZ1oq#m( zT(c^IUYt98V%-_sTFzku*YHCEj)66-3(S82kewkda5xw5iX?%VLy5RMVpvL=;C4BfQDAR$#1H^kk7GgyvXm$|DC$50p~=Dy^!n z)W0>EfMUtFx%(2+CwJ!HBnh}W$s59m z#x#2fFYMK;8GqpEpaT zMYdVF1gZkVd)_yaP2lr)pTkME!-MRUTli&e4`)p8e0D?Vl+W=5SC7LJKq{Si4UrZv z(V~ae^b54T#F0Nj!p}Jl;t0oHjs}us(!Gu;JZ%Fv{`w34rBpj*RWE!os3efig?dd;}$h<)Z@Cu#V zq9?-x!?efgm<9Uk7U;v7$O7s2%ads!Pa85g8=39~Wod0>y7M97Q0-+MTi_d%`K4!Kb0@Dy#K_9xz=>(Of%g>>c>y3@2&ix7X| zqgF6}wi);HIB=OJyuz@#N-O7LCOZ)UbTD31xJXe2zO6$&i=c+yqK8nuaVX-o?uT}r zXg7#v33GEjgD`#|*MmD(wX7 z3AuMfzO*hHWz_DT$xkv&xux*Pgad|ne(1OYaixR0$S9$-u0 z@%*;)u;zgdcnW4j+{?3n!6L<@b8nnAf~N#fww;y|if3O%Y%pD*UAV7l3ON z>lIe}D6s~byWb#ozo7IL<TD!4owT%QVFoegeG1y``j4tS$q@bAsMWX^U0ZjLu6=6GMP TVXZJv;5u#;Q@Y7`3AcU&pp*Uf diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/Dish.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/Dish.class index 874d032b0f5bc996a33b4986bd3c3998139ebdea..2595051daa42219fb2076956903ce1869e5c631c 100644 GIT binary patch delta 263 zcmX@ibeY-W)W2Q(7#JAL8N|34SQvyj8JHP_*%?IG8AKTw*itf!Gdx`w8H9YY63Y_x za}x8?^@B@_GV{`{CyG`naHgl0xImSNXlP<6n%E=5!Op6Pzz-x* WHE&^H+JL5+9imwbO}7A8nIHfO;UZT6 delta 149 zcmcc2e3(h})W2Q(7#JAL83ec(m>GE48Ti;4_$OLa$#Vtgmlh?bx@G31GBR+wWEN-W zWhIs+@-VP4ure~}Pi)YitidQ2zy#C<0*pWilmU`#K%PFB&%nT{wVi=+BT#^efgMP) d0fiZW8aRL?517r$z{$V`~H8F^+}xIBw8W4ioe5 zeQ()MJ3O;E>^tn+5Nba;IWaXcv&X_;-*6=Rsa;>xK&Qi`%dvE21ml@8uoacf?OZK}^OT^_lo_Dz@$IF34=_QvJc+ue{m&;^awo-4= zF3;NRajUG$rGcbHbn5iX#Ms5^vC)ai^XJmW_pHMemzPPoT;&yqS6yD?b(c3x959)5_VO8c6N$9y~VKedyrekcG2u(4eWlKFt*u zHQ>i*W)$+F8L_DKa2;XOt+1^dwW+fatlf&RWxbGG#!C9X#CHvUas_)hvrOO`!DOS3 z#_Kp1A5geLXt+4MOynDx3M~4YuH%}UT7g1~Z;1{xCzsf;MA3)q?lI$@Tl+nS+rL0@ z(-Ir!lXkw+yc#THlv5InO_Lhwph#y7J3|DQ0$p!p6D67>&OMaUE6WfGMyOEWW`$Og zmd7MjqIiqgtEO2gl1kXCn7b9_mq$owo2J&R-0N+^pzYp{cF5|gmAs`+sD%tl9$Ztj z&mrze%-kgCuygATd>sy<(E4h3X|=n#Kfh2;sF+CeIW8%_ zYL<@M#n=BoUg4W(iRQx%-E+CM-~R1l%Ph^e%aXX2C1cvim;TEO_l7qT8I&3jn^8{> z+r0@FZA#$2fY3F z;3!ATQ%r!&Rf)}rCm_e*I?{Uo6VECS=+R4Hoe zv_%@S4r*jts~Kc|)Jy4Dl9k>)MN9{T$4 zGq*NP%dFnB1||ksuz6o`nS$aF{RXjO?pkhawOlBTrIwd-Yw5yDS@94LD-JWDD6&}X z_7B7dDJec+NpXcm#fMxqNLK#}CXXtXSy7Z(lxZvZa{v70+|p9M)W47`lvbDXHmizj zd}Q;nVvXz7yZ+RPL52(>OION;g|+=coh{j{D?VXL@hP9#R1`P(T=9jDe92UGI&jkR z4IQ~~Yd!F-S&7W1GO5!ubC>33&Yhh*Z{SO%(}F%OLVyoblN8U?j4*h_^B)yY$Tcej zisX-gk&+HeqU-K1hU@zga|fS$2P?aae}{l;>|ndY;tk&>Xz)#imOF&9ZO$&?yAo3d zvm>`@krao;i5UDsYi87~bD&Q2X0yCam)G|GsG(-JiH+20-*TCG5k>?QCWevkJ#+5M{ z=^0^E$QB8T_n6QZ(u{d4(cV#SS;r)*1WqHOmo_ebAAvo&(zJ=&6?wkgCt#Bt{1z(TIKWll^~(x5vU zy$=8;_5oHT*+8g6`v`p)u_lTWg5pUg#frZCBXa`sEe`)mi(KpTG&vv=v>mLI(1LG{ zZqvEJgk%Gro|9Im)l{@sdksk^{hj_gU6pORH}KW={;bh1ojn@_YB=KcN?0qZiTOMk zU6Bvjc0@McAv^E(NF0+teOwfokU#x67X@sdr##Y0{E`cMO8GVD2lR`alo?u=@uCzz h?QN&XGfc@VNh=xN-mh diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/Main$A.class b/out/production/DesignPatternProject/edu/tongji/designpattern/Main$A.class deleted file mode 100644 index 9fc91ce10b1ab8035680db6f5fca1164f25edbab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 638 zcmah`T}uK{5ItAT)pgCyKCR5OeNcn8w;qZ>geWj03ZciVd$B8aH+HZ6uOJZ$`T_l@ zXs-2aFEh-{IWuQwzP{f-0i56$vG2l3G!Pfk zG|ZZPjz;{2j*#h!SYL**worB8An#xqHIn@QF$}WcAcGtoV=p0*!`1~uJwD&0UP~qQ4MV@ZCO7_j z)w(kx<~`pN426MIVz_u6i{Ocm=M*Uo{0X0rcp#1cA50mlG6?P2Gp_OiVPxNqo`j zKDF2+hGe@lLX+;BrlTi7`$irp77as+(BMRKi)4YkXUa&Dt~jSlFy|8qhb@tG&PaSj z^+l2;LNhXlZK^EOtB?gWR<-m~A&*d^9xSpl+H6zMY9 EAF!96)&Kwi diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/Main$data.class b/out/production/DesignPatternProject/edu/tongji/designpattern/Main$data.class deleted file mode 100644 index 10af70e3724855037a944184a8302d80c508a595..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 zcmah_O-sW-5Ph4*q>0hSR_h0dC_S_lj5iNTF9lJE^`PXwO_sVP-AJ0=U3|hX%HN*w}H=b+OCf=qFkA&KZtkku4)#sM%abnW*GU zJ#(!^siHeB)g`4~NhS4&;iUgh?jT{X$3-R>TCr4OvRq6>`N*d^G3~fWd7ki68vIAv zW(+FIxaJJOtx}>K=e()}vAxypdZvix^B;<3nTl&^x_D;jvpIhux#mPv`lhI~i@gAA za00m4r#)6~T+1?qMkC6(nnm~1xkxp`;mSIOMt_jtm`-ie)ma#tmgYz1qDkH(G=fD2 y_`}mTu;DwbS3(wi@($%t1ncCxzgY;-B4k*jMokbBvap4A{dTZfM@^)I4X_{am~;{V diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/Main.class b/out/production/DesignPatternProject/edu/tongji/designpattern/Main.class index ea09de96c511721c3eabe19d57a19fb9bb73d560..3e2fe6dbe230ec37bf4e3076d91a558df2056484 100644 GIT binary patch literal 1572 zcmb7EYflqF6g@*9Tgoa}1mA-17KD{5s1#8|5wsK%2n78!(6KDp?l!wyNq?4p03(S% zz`tZ-JhKZ?3{9{fI(P2Oz4zR6?#_>2-@XHQjHN7kG1>_W4>B0bqKJnE9%YfjsDbee zZe(F#Lhm0Nc#^@>EV?j}!DJRCOzFdCI%wL!a|15~(o?o;htmRyd|^!>IqOxGKzG@8 zRi#DQR3_k?32lfEy|7e_Wj+p%VRU$)A25Hht< zm#(ZS-WYEWW7d&D@G3%PEh|6pG_oj+84|nUn82g|ie8sC`-_8%0;$Hf=aQxA(5C^3F?G7ahrPe9Hyp2}RB4(evnyWH z-%@k7mbp_4HmWr;aUOjJW=y=qtU%YcavX1P*YlmKfmbG8V~&DFY97}_;9=WwXs?4V zH)rAv<^_uX6CW!fklBqS8Kjg)X3@ZciMM!XqKriixgv0_ZF1eZK+m56UE17HTj4R+ zN-GFeojQ3<9vsf3?ODql<&XodWSx}8v>bPHQXBe`!y0}0lRtxmtXBUyjWLu8oQSEm z$p5Cb&1_M@nhF=(Ae8PFgBv|!Ul>f=rwfM9U zelq{Qu!bAR@d4An4hTJB{O{+^;wreNhV~&oN5>cVpN^a+F48vR3%G>K+;!p#uF|7} zem>os6I_Mx z)-Vu3pO4|;8m=?Ghhsj#IKlX5WaK8f7{Ul{;Wq1xbAN|cl3BWO7x(yKEBEp715m1yN2qPvYW0GJn#7||r8O5%}w$u2d{GcDe zNa7FhM;V{nk}wm7AKG*7d3(-t?zzAJ{QL!A4ZAwJkx!$5xfCAhn8$*KMID{UYcO?a zN-pVmjAb2Ztf=r+4No*Y6%acD#%tG=e#xtTY?P(tm3mJG5lVUe$6AE#Fq>D`PS|u~~7vENe|O^xXQXZPsL9*WEKK z45jaydzS4MS++qbFqD5^KD9nsrenEv^C0wXw_c23Ex*n}12?$Ya8+QrJw!xoH$pY{ zr5|{%S@OIOL=_Ewb!q3=ATx z;hBNwSf}emI*vE-+4G&6hN6KDybxGwJCHWr3XHW)QH^lOxB91fshbA2@KW`+ZD0o_ zfxhcuzd1gY)$qS%xGqz-1I268Qu*LZ5K2xu;Wb%58(*;PnftumkasMt2Io5vweqi7 zKs!@G4(Vm{H*ZFNl-CSx$BZd(O?rI!v1$9V;<=Tk;|R>OCdXmLLQB0X6S?JYUxjEH zQ=u2HrodpnwanGRVv=vJn{N~70ArBle~2fOQc!lzT|j(`+{65LMaC3z)Qva*BN*i= zjk~x7)6hAJE@ja3L4glMGxqhrv*4 zBgt63hMhu+<%apsp^tz$Le3DdK*$x0VH5YGmR4g}TJAHxk1WP9!KQMUCDT!IoMHA9 p9w5QoAxu+CQh&&3<(s8U@!Uf?8RmmI>ZGBURnnCGlo`qah`;-?DZ&5% From 82a603ca994bf124e1bdc440424f66f7bf3caae6 Mon Sep 17 00:00:00 2001 From: Eyisheng Date: Sun, 3 Nov 2019 13:20:38 +0800 Subject: [PATCH 3/4] group commit 1 --- .gitattributes | 2 + .idea/misc.xml | 19 +- DesignPatternProject/.idea/.gitignore | 3 + .../.idea/DesignPatternProject.iml | 9 + DesignPatternProject/.idea/misc.xml | 22 +- DesignPatternProject/.idea/modules.xml | 2 +- DesignPatternProject/.idea/vcs.xml | 1 + DesignPatternProject/.idea/workspace.xml | 148 +++++++++++-- ...gnPatternProject.iml => DesignPattern.iml} | 0 .../CommonClass/Customer/Customer.class | Bin 0 -> 5775 bytes .../CommonClass/Customer/VIPType.class | Bin 0 -> 1128 bytes .../CommonClass/Employee/Cashier.class | Bin 0 -> 3298 bytes .../CommonClass/Employee/Cook.class | Bin 0 -> 2700 bytes .../CommonClass/Employee/Employee.class | Bin 0 -> 2843 bytes .../CommonClass/Employee/EmployeeTitle.class | Bin 0 -> 1271 bytes .../CommonClass/Employee/Gender.class | Bin 0 -> 1122 bytes .../CommonClass/Employee/Manager.class | Bin 0 -> 2867 bytes .../CommonClass/Employee/Waiter.class | Bin 0 -> 6564 bytes .../CommonClass/Items/Item.class | Bin 0 -> 942 bytes .../CommonClass/Items/Memento.class | Bin 0 -> 1225 bytes .../CommonClass/Items/Menu.class | Bin 0 -> 3830 bytes .../CommonClass/Items/OrderClone.class | Bin 0 -> 1513 bytes .../CommonClass/Order/AbstractAggregate.class | Bin 0 -> 1447 bytes .../CommonClass/Order/Order.class | Bin 0 -> 4505 bytes .../CommonClass/Order/OrderAggregate.class | Bin 0 -> 896 bytes .../CommonClass}/Order/OrderType.class | Bin 1137 -> 1137 bytes .../CommonClass/Other/BroadcastType.class | Bin 0 -> 1215 bytes .../CommonClass/Other}/Dish.class | Bin 467 -> 467 bytes .../CommonClass/Other}/Table.class | Bin 326 -> 326 bytes .../AdapterPattern/Coupon.class | Bin 0 -> 337 bytes .../AdapterPattern/CouponA.class | Bin 0 -> 761 bytes .../AdapterPattern/CouponB.class | Bin 0 -> 761 bytes .../AdapterPattern/CouponC.class | Bin 0 -> 761 bytes .../AdapterPattern/CouponN.class | Bin 0 -> 757 bytes .../AdapterPattern/Discount.class | Bin 0 -> 181 bytes .../AdapterPattern/DiscountAdapter.class | Bin 0 -> 1287 bytes .../AdapterPattern/RealDiscount.class | Bin 0 -> 881 bytes .../BridgePattern/AirConditionerAPI.class | Bin 0 -> 197 bytes .../BridgePattern/FloorAirConditioner.class | Bin 0 -> 1183 bytes .../BridgePattern/HangingAirConditioner.class | Bin 0 -> 1189 bytes .../BuilderPattern/Combo.class | Bin 0 -> 1485 bytes .../BuilderPattern/ComboBuilder.class | Bin 0 -> 777 bytes .../ConcreteComboBuilderA.class | Bin 0 -> 1093 bytes .../ConcreteComboBuilderB.class | Bin 0 -> 1093 bytes .../BuilderPattern/Director.class | Bin 0 -> 1106 bytes .../Complaint.class | Bin 0 -> 2191 bytes .../CommandPattern/AddDishCommand.class | Bin 0 -> 1016 bytes .../CommandPattern/ConfirmOrderCommand.class | Bin 0 -> 780 bytes .../CommandPattern/CreateOrderCommand.class | Bin 0 -> 776 bytes .../CommandPattern/DropDishCommand.class | Bin 0 -> 1020 bytes .../CommandPattern/OrderPadCommand.class | Bin 0 -> 758 bytes .../DecoratorPattern/CashierDecorator.class | Bin 0 -> 755 bytes .../VIPCashierDecorator.class | Bin 0 -> 1597 bytes .../FacadePattern/BeerOpener.class | Bin 0 -> 724 bytes .../FacadePattern/CockOpener.class | Bin 0 -> 718 bytes .../FacadePattern/DarkPlumJuiceOpener.class | Bin 0 -> 757 bytes .../FacadePattern/DrinkOpener.class | Bin 0 -> 179 bytes .../FacadePattern/OpenerMaker.class | Bin 0 -> 1377 bytes .../FacadePattern/SpriteOpener.class | Bin 0 -> 726 bytes .../FilterPattern/CustomerCriteria.class | Bin 0 -> 650 bytes .../NonVIPCustomerCriterira.class | Bin 2125 -> 2143 bytes .../FilterPattern}/VIPCustomerCriteria.class | Bin 2094 -> 2112 bytes .../IteratorPattern/DishIterator.class | Bin 0 -> 2369 bytes .../IteratorPattern}/MyIterator.class | Bin 358 -> 360 bytes .../IteratorPattern/OrderIterator.class | Bin 0 -> 2406 bytes .../MediatorPattern/InterPhoneChannel.class | Bin 0 -> 3459 bytes .../PrototypePattern/Memento.class | Bin 0 -> 1330 bytes .../PrototypePattern/OrderClone.class | Bin 0 -> 1772 bytes .../ProxyPattern/MenuSource.class | Bin 0 -> 176 bytes .../ProxyPattern/ProxyMenuSource.class | Bin 0 -> 877 bytes .../ProxyPattern/RealMenuSource.class | Bin 0 -> 1325 bytes .../StatePattern/CheckOutState.class | Bin 0 -> 1158 bytes .../StatePattern/CustomerState.class | Bin 0 -> 453 bytes .../StatePattern/EatState.class | Bin 0 -> 1146 bytes .../StatePattern/LeaveState.class | Bin 0 -> 788 bytes .../StatePattern/OrderState.class | Bin 0 -> 1148 bytes .../StatePattern/WaitState.class | Bin 0 -> 1144 bytes .../StrategyPattern/AddDishStrategy.class | Bin 0 -> 971 bytes .../StrategyPattern/DropDishStrategy.class | Bin 0 -> 1725 bytes .../OrderConfirmStrategy.class | Bin 0 -> 2106 bytes .../StrategyPattern/OrderCreateStrategy.class | Bin 0 -> 910 bytes .../OrderRecordingStrategy.class | Bin 0 -> 354 bytes .../designpattern/Main$Debug$Eyisheng.class | Bin 0 -> 595 bytes .../edu/tongji/designpattern/Main$Debug.class | Bin 0 -> 574 bytes .../edu/tongji/designpattern/Main.class | Bin 0 -> 580 bytes .../Business/Command/ConfirmOrderCommand.java | 14 -- .../Business/Command/CreateOrderCommand.java | 15 -- .../Business/Command/DropDishCommand.java | 15 -- .../OrderRecording/AddDishStrategy.java | 12 -- .../OrderRecording/OrderConfirmStrategy.java | 17 -- .../OrderRecording/OrderCreateStrategy.java | 11 - .../OrderRecordingStrategy.java | 8 - .../ClassDesign/Order/Order.java | 65 ------ .../ClassDesign/Order/OrderAggregate.java | 12 -- .../ClassDesign/Person/Cashier.java | 39 ---- .../ClassDesign/Person/Cook.java | 46 ---- .../ClassDesign/Person/Customer.java | 72 ------- .../ClassDesign/Person/Employee.java | 44 ---- .../ClassDesign/Person/Manager.java | 47 ---- .../ClassDesign/Person/Waiter.java | 84 -------- .../designpattern/ClassDesign/Tools/Dish.java | 9 - .../ClassDesign/Tools/Table.java | 4 - .../CommonClass/Customer/Customer.java | 204 ++++++++++++++++++ .../CommonClass/Customer/VIPType.java | 5 + .../CommonClass/Employee/Cashier.java | 80 +++++++ .../CommonClass/Employee/Cook.java | 103 +++++++++ .../CommonClass/Employee/Employee.java | 98 +++++++++ .../Employee}/EmployeeTitle.java | 2 +- .../CommonClass/Employee/Gender.java | 5 + .../CommonClass/Employee/Manager.java | 72 +++++++ .../CommonClass/Employee/Waiter.java | 177 +++++++++++++++ .../designpattern/CommonClass/Items/Item.java | 50 +++++ .../CommonClass/Items/Memento.java | 37 ++++ .../designpattern/CommonClass/Items/Menu.java | 58 +++++ .../CommonClass/Items/OrderClone.java | 56 +++++ .../Order/AbstractAggregate.java | 5 +- .../CommonClass/Order/Order.java | 151 +++++++++++++ .../CommonClass/Order/OrderAggregate.java | 13 ++ .../Order/OrderType.java | 2 +- .../Other}/BroadcastType.java | 2 +- .../designpattern/CommonClass/Other/Dish.java | 25 +++ .../CommonClass/Other/Table.java | 4 + .../AdapterPattern/Coupon.java | 20 ++ .../AdapterPattern/CouponA.java | 23 ++ .../AdapterPattern/CouponB.java | 21 ++ .../AdapterPattern/CouponC.java | 21 ++ .../AdapterPattern/CouponN.java | 24 +++ .../AdapterPattern/Discount.java | 12 ++ .../AdapterPattern/DiscountAdapter.java | 31 +++ .../AdapterPattern/RealDiscount.java | 25 +++ .../BridgePattern/AirConditionerAPI.java | 17 ++ .../BridgePattern/FloorAirConditioner.java | 22 ++ .../BridgePattern/HangingAirConditioner.java | 22 ++ .../DevideByPattern/BuilderPattern/Combo.java | 37 ++++ .../BuilderPattern/ComboBuilder.java | 41 ++++ .../BuilderPattern/ConcreteComboBuilderA.java | 31 +++ .../BuilderPattern/ConcreteComboBuilderB.java | 29 +++ .../BuilderPattern/Director.java | 33 +++ .../Complaint.java | 79 +++++++ .../CommandPattern}/AddDishCommand.java | 7 +- .../CommandPattern/ConfirmOrderCommand.java | 15 ++ .../CommandPattern/CreateOrderCommand.java | 15 ++ .../CommandPattern/DropDishCommand.java | 16 ++ .../CommandPattern}/OrderPadCommand.java | 9 +- .../DecoratorPattern/CashierDecorator.java | 29 +++ .../DecoratorPattern/VIPCashierDecorator.java | 46 ++++ .../FacadePattern/BeerOpener.java | 17 ++ .../FacadePattern/CockOpener.java | 17 ++ .../FacadePattern/DarkPlumJuiceOpener.java | 16 ++ .../FacadePattern/DrinkOpener.java | 14 ++ .../FacadePattern/OpenerMaker.java | 44 ++++ .../FacadePattern/SpriteOpener.java | 16 ++ .../FilterPattern}/CustomerCriteria.java | 6 +- .../NonVIPCustomerCriterira.java | 8 +- .../FilterPattern}/VIPCustomerCriteria.java | 8 +- .../IteratorPattern}/DishIterator.java | 14 +- .../IteratorPattern}/MyIterator.java | 4 +- .../IteratorPattern}/OrderIterator.java | 15 +- .../MediatorPattern}/InterPhoneChannel.java | 7 +- .../PrototypePattern/Memento.java | 38 ++++ .../PrototypePattern/OrderClone.java | 60 ++++++ .../ProxyPattern/MenuSource.java | 12 ++ .../ProxyPattern/ProxyMenuSource.java | 33 +++ .../ProxyPattern/RealMenuSource.java | 45 ++++ .../StatePattern/CheckOutState.java | 30 +++ .../StatePattern/CustomerState.java | 14 ++ .../StatePattern/EatState.java | 30 +++ .../StatePattern/LeaveState.java | 21 ++ .../StatePattern/OrderState.java | 29 +++ .../StatePattern/WaitState.java | 30 +++ .../StrategyPattern/AddDishStrategy.java | 12 ++ .../StrategyPattern}/DropDishStrategy.java | 9 +- .../StrategyPattern/OrderConfirmStrategy.java | 19 ++ .../StrategyPattern/OrderCreateStrategy.java | 12 ++ .../OrderRecordingStrategy.java | 9 + .../src/edu/tongji/designpattern/Main.java | 164 ++++++++++++-- .../DesignPatternProject.kotlin_module | Bin 16 -> 0 bytes .../Business/Command/AddDishCommand.class | Bin 1002 -> 0 bytes .../Command/ConfirmOrderCommand.class | Bin 768 -> 0 bytes .../Business/Command/CreateOrderCommand.class | Bin 764 -> 0 bytes .../Business/Command/DropDishCommand.class | Bin 1006 -> 0 bytes .../Business/Command/OrderPadCommand.class | Bin 750 -> 0 bytes .../Business/Iterator/DishIterator.class | Bin 2363 -> 0 bytes .../Business/Iterator/OrderIterator.class | Bin 2400 -> 0 bytes .../OrderRecording/AddDishStrategy.class | Bin 983 -> 0 bytes .../OrderRecording/DropDishStrategy.class | Bin 1737 -> 0 bytes .../OrderRecording/OrderConfirmStrategy.class | Bin 2245 -> 0 bytes .../OrderRecording/OrderCreateStrategy.class | Bin 922 -> 0 bytes .../OrderRecordingStrategy.class | Bin 358 -> 0 bytes .../ClassDesign/Order/AbstractAggregate.class | Bin 1443 -> 0 bytes .../ClassDesign/Order/Order.class | Bin 2714 -> 0 bytes .../ClassDesign/Order/OrderAggregate.class | Bin 892 -> 0 bytes .../ClassDesign/Person/BroadcastType.class | Bin 1221 -> 0 bytes .../ClassDesign/Person/Cashier.class | Bin 1076 -> 0 bytes .../ClassDesign/Person/Cook.class | Bin 1455 -> 0 bytes .../ClassDesign/Person/Customer.class | Bin 3381 -> 0 bytes .../ClassDesign/Person/Employee.class | Bin 2239 -> 0 bytes .../ClassDesign/Person/EmployeeTitle.class | Bin 1259 -> 0 bytes .../Person/Filter/CustomerCriteria.class | Bin 638 -> 0 bytes .../ClassDesign/Person/Gender.class | Bin 1112 -> 0 bytes .../ClassDesign/Person/Manager.class | Bin 1712 -> 0 bytes .../ClassDesign/Person/VIPType.class | Bin 1117 -> 0 bytes .../ClassDesign/Person/Waiter.class | Bin 4062 -> 0 bytes .../ClassDesign/Tools/InterPhoneChannel.class | Bin 3374 -> 0 bytes .../edu/tongji/designpattern/Main.class | Bin 1572 -> 0 bytes 205 files changed, 2647 insertions(+), 600 deletions(-) create mode 100644 .gitattributes create mode 100644 DesignPatternProject/.idea/.gitignore create mode 100644 DesignPatternProject/.idea/DesignPatternProject.iml rename DesignPatternProject/{DesignPatternProject.iml => DesignPattern.iml} (100%) create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Customer/Customer.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Customer/VIPType.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Employee/Cashier.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Employee/Cook.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Employee/Employee.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Employee/EmployeeTitle.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Employee/Gender.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Employee/Manager.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Employee/Waiter.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Items/Item.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Items/Memento.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Items/Menu.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Items/OrderClone.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Order/AbstractAggregate.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Order/Order.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Order/OrderAggregate.class rename {out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign => DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass}/Order/OrderType.class (60%) create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Other/BroadcastType.class rename {out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools => DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Other}/Dish.class (58%) rename {out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools => DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Other}/Table.class (60%) create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/AdapterPattern/Coupon.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponA.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponB.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponC.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponN.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/AdapterPattern/Discount.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/AdapterPattern/DiscountAdapter.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/AdapterPattern/RealDiscount.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BridgePattern/AirConditionerAPI.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BridgePattern/FloorAirConditioner.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BridgePattern/HangingAirConditioner.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BuilderPattern/Combo.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ComboBuilder.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ConcreteComboBuilderA.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ConcreteComboBuilderB.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BuilderPattern/Director.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/ChainofResponsibilityPattern/Complaint.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/CommandPattern/AddDishCommand.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/CommandPattern/ConfirmOrderCommand.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/CommandPattern/CreateOrderCommand.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/CommandPattern/DropDishCommand.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/CommandPattern/OrderPadCommand.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/DecoratorPattern/CashierDecorator.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/DecoratorPattern/VIPCashierDecorator.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/FacadePattern/BeerOpener.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/FacadePattern/CockOpener.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/FacadePattern/DarkPlumJuiceOpener.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/FacadePattern/DrinkOpener.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/FacadePattern/OpenerMaker.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/FacadePattern/SpriteOpener.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/FilterPattern/CustomerCriteria.class rename {out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Filter => DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/FilterPattern}/NonVIPCustomerCriterira.class (52%) rename {out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Filter => DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/FilterPattern}/VIPCustomerCriteria.class (52%) create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/IteratorPattern/DishIterator.class rename {out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator => DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/IteratorPattern}/MyIterator.class (51%) create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/IteratorPattern/OrderIterator.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/MediatorPattern/InterPhoneChannel.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/PrototypePattern/Memento.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/PrototypePattern/OrderClone.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/ProxyPattern/MenuSource.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/ProxyPattern/ProxyMenuSource.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/ProxyPattern/RealMenuSource.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StatePattern/CheckOutState.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StatePattern/CustomerState.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StatePattern/EatState.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StatePattern/LeaveState.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StatePattern/OrderState.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StatePattern/WaitState.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StrategyPattern/AddDishStrategy.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StrategyPattern/DropDishStrategy.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderConfirmStrategy.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderCreateStrategy.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderRecordingStrategy.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/Main$Debug$Eyisheng.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/Main$Debug.class create mode 100644 DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/Main.class delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/ConfirmOrderCommand.java delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/CreateOrderCommand.java delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/DropDishCommand.java delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/AddDishStrategy.java delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderConfirmStrategy.java delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderCreateStrategy.java delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderRecordingStrategy.java delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/Order.java delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/OrderAggregate.java delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cashier.java delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cook.java delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Customer.java delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Employee.java delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Manager.java delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Waiter.java delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/Dish.java delete mode 100644 DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/Table.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Customer/Customer.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Customer/VIPType.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Cashier.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Cook.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Employee.java rename DesignPatternProject/src/edu/tongji/designpattern/{ClassDesign/Person => CommonClass/Employee}/EmployeeTitle.java (54%) create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Gender.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Manager.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Waiter.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Items/Item.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Items/Memento.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Items/Menu.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Items/OrderClone.java rename DesignPatternProject/src/edu/tongji/designpattern/{ClassDesign => CommonClass}/Order/AbstractAggregate.java (79%) create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/Order.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/OrderAggregate.java rename DesignPatternProject/src/edu/tongji/designpattern/{ClassDesign => CommonClass}/Order/OrderType.java (51%) rename DesignPatternProject/src/edu/tongji/designpattern/{ClassDesign/Person => CommonClass/Other}/BroadcastType.java (56%) create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/Dish.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/Table.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/Coupon.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponA.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponB.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponC.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponN.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/Discount.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/DiscountAdapter.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/RealDiscount.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BridgePattern/AirConditionerAPI.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BridgePattern/FloorAirConditioner.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BridgePattern/HangingAirConditioner.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/Combo.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ComboBuilder.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ConcreteComboBuilderA.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ConcreteComboBuilderB.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/Director.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/ChainofResponsibilityPattern/Complaint.java rename DesignPatternProject/src/edu/tongji/designpattern/{ClassDesign/Business/Command => DevideByPattern/CommandPattern}/AddDishCommand.java (58%) create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/CommandPattern/ConfirmOrderCommand.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/CommandPattern/CreateOrderCommand.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/CommandPattern/DropDishCommand.java rename DesignPatternProject/src/edu/tongji/designpattern/{ClassDesign/Business/Command => DevideByPattern/CommandPattern}/OrderPadCommand.java (52%) create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/DecoratorPattern/CashierDecorator.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/DecoratorPattern/VIPCashierDecorator.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/BeerOpener.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/CockOpener.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/DarkPlumJuiceOpener.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/DrinkOpener.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/OpenerMaker.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/SpriteOpener.java rename DesignPatternProject/src/edu/tongji/designpattern/{ClassDesign/Person/Filter => DevideByPattern/FilterPattern}/CustomerCriteria.java (63%) rename DesignPatternProject/src/edu/tongji/designpattern/{ClassDesign/Person/Filter => DevideByPattern/FilterPattern}/NonVIPCustomerCriterira.java (73%) rename DesignPatternProject/src/edu/tongji/designpattern/{ClassDesign/Person/Filter => DevideByPattern/FilterPattern}/VIPCustomerCriteria.java (73%) rename DesignPatternProject/src/edu/tongji/designpattern/{ClassDesign/Business/Iterator => DevideByPattern/IteratorPattern}/DishIterator.java (76%) rename DesignPatternProject/src/edu/tongji/designpattern/{ClassDesign/Business/Iterator => DevideByPattern/IteratorPattern}/MyIterator.java (59%) rename DesignPatternProject/src/edu/tongji/designpattern/{ClassDesign/Business/Iterator => DevideByPattern/IteratorPattern}/OrderIterator.java (73%) rename DesignPatternProject/src/edu/tongji/designpattern/{ClassDesign/Tools => DevideByPattern/MediatorPattern}/InterPhoneChannel.java (89%) create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/PrototypePattern/Memento.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/PrototypePattern/OrderClone.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/ProxyPattern/MenuSource.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/ProxyPattern/ProxyMenuSource.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/ProxyPattern/RealMenuSource.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/CheckOutState.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/CustomerState.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/EatState.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/LeaveState.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/OrderState.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/WaitState.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/AddDishStrategy.java rename DesignPatternProject/src/edu/tongji/designpattern/{ClassDesign/Business/OrderRecording => DevideByPattern/StrategyPattern}/DropDishStrategy.java (54%) create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderConfirmStrategy.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderCreateStrategy.java create mode 100644 DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderRecordingStrategy.java delete mode 100644 out/production/DesignPatternProject/META-INF/DesignPatternProject.kotlin_module delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/AddDishCommand.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/ConfirmOrderCommand.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/CreateOrderCommand.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/DropDishCommand.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Command/OrderPadCommand.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator/DishIterator.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/Iterator/OrderIterator.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/AddDishStrategy.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStrategy.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderConfirmStrategy.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderCreateStrategy.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderRecordingStrategy.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/AbstractAggregate.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/Order.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/OrderAggregate.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/BroadcastType.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Cashier.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Cook.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Customer.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Employee.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/EmployeeTitle.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Filter/CustomerCriteria.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Gender.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Manager.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/VIPType.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Waiter.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/InterPhoneChannel.class delete mode 100644 out/production/DesignPatternProject/edu/tongji/designpattern/Main.class diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.idea/misc.xml b/.idea/misc.xml index 1763e15..7096c54 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,23 @@ - + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DesignPatternProject/.idea/.gitignore b/DesignPatternProject/.idea/.gitignore new file mode 100644 index 0000000..0e40fe8 --- /dev/null +++ b/DesignPatternProject/.idea/.gitignore @@ -0,0 +1,3 @@ + +# Default ignored files +/workspace.xml \ No newline at end of file diff --git a/DesignPatternProject/.idea/DesignPatternProject.iml b/DesignPatternProject/.idea/DesignPatternProject.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/DesignPatternProject/.idea/DesignPatternProject.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/DesignPatternProject/.idea/misc.xml b/DesignPatternProject/.idea/misc.xml index 61e5329..961a88c 100644 --- a/DesignPatternProject/.idea/misc.xml +++ b/DesignPatternProject/.idea/misc.xml @@ -1,9 +1,23 @@ - - \ No newline at end of file diff --git a/DesignPatternProject/.idea/modules.xml b/DesignPatternProject/.idea/modules.xml index 9c5cb24..2fbbd78 100644 --- a/DesignPatternProject/.idea/modules.xml +++ b/DesignPatternProject/.idea/modules.xml @@ -2,7 +2,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..bdaaae3 100644 --- a/DesignPatternProject/.idea/workspace.xml +++ b/DesignPatternProject/.idea/workspace.xml @@ -1,11 +1,86 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - 1572002587021 + + 1572610089233 @@ -97,10 +196,15 @@ - + + + + \ No newline at end of file diff --git a/DesignPatternProject/DesignPatternProject.iml b/DesignPatternProject/DesignPattern.iml similarity index 100% rename from DesignPatternProject/DesignPatternProject.iml rename to DesignPatternProject/DesignPattern.iml diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Customer/Customer.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Customer/Customer.class new file mode 100644 index 0000000000000000000000000000000000000000..84cd93565accb3febcd597c6baa23a7d8d2f1987 GIT binary patch literal 5775 zcmbtY`*##q9skTG+1YF+0m3s_F|lc74nI+GHi>3&{i%wdDbO{R!A>ExH%h{8Lk@nXSNu4mq z+{rN#wN(buDb=M9?>{ueg~X^0)D#pf_2rJcW-i@h7F_XokZN>y+#$(k z2?+Wf2I-KVmD8lq3WhUbWRK`3V|4%F^Vbn4zQeRkw?jcyOY31O@3ga2zNE*rjK1;w zu;C2p!#U10_ShLccUX5!aW5yU-BFVvd!oEu(cB5Vlnw@@f3an5c26 z^NhB~^hnU?XhCAd1lm1~i)k1Jz-O?r2CO9FpXJ1Qs4fl~g9x7=i zYL%X4>a;I_y|9l3oRVRn9V2f~Fp?Uv12-^ujV-MuCB?Ax%$fYZ>MY^f{?4OdMSwhe zKZ^V5tl-HC4GqIDGg+7!JLM`!3M4aQbc>2(mAJjd0_<4;yfi}hs6fG2mC2K%o`K4o z?A6C)QBZ&@w>AYeW`Sd`x{h(zHBK9uao3R8T+85gnT63V!`~scEg&!&=6-k7aMEIB zyAV>HukuepaucKOn!Eliq*tYeQwty%nj*CmmP;L9?O!9CjB2m^2R zELwYK5v)kjn6a(rO(#E#qj&Kf5ws#na?l=kGR7WLY^wD^9c~pZTEljs4P%Xa0`=y==3tbXCmXxNIhh7H)LVG|x!u-rQhc8Z+qPS99eu3Va7XQIVM!bp68M#dxA3-xZFpS8I~v|an})~m zB^AHc@Eg3Rps9Ocpnu@0X3K8&>e3o%KIOHn^(roEcpo2V_$^vh{7%Cqv?|HEmNfz?(u~?+J`6dJoC^)!i#JSnUQ$SfX;jG{c7bIQShZ*1E z5wU;xgpuJs`uP1}g*#rnufNaR@;b``ESS21I@$gjis>pcRl&;WiNP1!-g+#F5Ak~* zLH~2{_MMO4|LoRV$L~y?yL0vpj+D=Cy?*zFsXJ#bi<>RYcQ0JIbN14|KfOVfeE05| z8Rc08tMmFv?#ot2caNCvC`ScXw_G;Jb5TNhfG)o&L>(RWD0x_}Y*pZZ;t^%;5lO+e zvfiCnL2yn?W^#t^cstyzs1HsSTqDmuWseIV`;4ZYKE&?@o7pYYJtW7{Xk$9NFgZ&`-peM1?{sSDAZk{JHZx{qH9Iis+_U)Vl3 z^pTla3%yUN$V2J=tqEpZ12Kgn?uHveKjdSdqPn&{u3%`f;{91j8AGry{ zL<8a|CVG%}Wq0$gY&=k~#T!4u=j>MAn7zomvYU8UwisSl@Le`Z{yxFGUQ}@etWM29 zNnJy18da&As6IM_nrXzZdJCWAZzDg?K{3@F)lt$a%6W=2n!gLQvosfag047R?L4ZMUO<>>|;GctixrnM05q#-Y|x3 zL=r~T(x`aqI_gWMJ;(IXBgWN+#_hv?DX5De!fP5q>Nfuw4KW-k#mO`BRz#K-nyBFb z<1b_#EQ`2g9>mi`oV*8O50f`4 z4ORJ<;9u1ZW*JHm-;5wOhA#UG1|(94bXi=)a9OFd&NGG=BBn+2VUU$5oHZ22@M&U+ z7}itGvg;J5%z|w267OwR#yhOIcO$~;rLdSds7YbNQrH>+_D|Faeaoj%cMU5VS6;^| zA+^d&e7~ySBkn~k!3S8)lVmZ4*M#w1gCndw1z+XLYQ&bP93KtEKPJT|xPh!@Sr=X5 z7uHlnZz6Q$F&vkAyXE?&A{2zU1hsk!)m0ybI(?iEBRESXj!;yCSi??!yW(r1r0s+j z{uI$&ejRIylKcw0Op`x~z!haZi?2&rS(+;9eeF#&9Tl$JJcG5psV&#>xjCr5Bd?&I zS=5ND{ExSd=2_!}Bpd5HNmzLB?s~FkLW1#!o9?%y^91 zkTFAj!p5eXSm!a$;0p^9-emsW!ZQ2?Yj8V4*c6)BBu&&j6Ah2>`S}Q&CE@x73I9sM rzmf3oB>YDOgd-%Z!YFNu!NebVP147gafR`2!nb&z;QhDx_nrR%`WD{4 literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Customer/VIPType.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Customer/VIPType.class new file mode 100644 index 0000000000000000000000000000000000000000..cccaefb7d9e3b6288c120f34ec2697d0cdff67f0 GIT binary patch literal 1128 zcmbVLZEMp|6n<`#Hf@%*Th;37biPbYI&B;{Cbo=8nb28Up|ddjl(yHJl9!Pt1OJtF z;6zdO*&ijIn+4aQpLzrLa_)KVd7kr#ImlR7@c<7MEGu}VLW3?gBa20q zoQ6PDvM7jiL&0MPsn>kNu-)Rr$P9gNG`7tlpV%Ys$O=OqcxJ2+_H-;e_%O1E3gGmLMD5bOPs}jiKuFI z+q1(RhSGm@G>smE9DcB=4!JJ1!V05+B1yV%Wa|SbdEA@{z2`-4ea-}SsE=ybkAeYz zWs5p#Nq?)NMjDpHG%ag*f-1w-T$7@q1XIIJtZG<9UPA$ShWtejgnowf!0|m2a8);E za_jWRd=Qezt=VeDBUzh){cYprsI}cqns$wT5ovctkOOoQKd@95xsgXk4n;Tr9k*e4ObgzE|Z8B+1BT9hkakv@Yg@Tp7q8+4^?te2(3-bQjMR+!E4pJI1Ubi#u3LgzQryVpYFGJ}fHIDY7TX#fB=! o#zOiBxuhu#)}cJbLiYqru$?ETk{nTtGKong40ovr+!l6#s32B*aTqe4>4bRe@j)wN3iz5Gj+z|2(;kT@BKGQqW#oApfjDGy-6UDq&}v6*zE3k?C<=}*>jiQ|C#y? zKqEf!U@i8QV-1?i(E`7m1>~^bg;o!oI3O2oZnS%F5HFXb1Dzh)>GGf(J(c96&x2QS z*o7l*yyn3Y9FSH=o%=SBjQ-@-u}Uz!E*-s52?ySC;cXXGhDCzM;@nh4!sHArz~BiQ ziMXNnjl^lAvSUacR((-b5BqwBsp;V+2F2uRG@x0es0)VH4jxMQgrSFrG+&5YT3C;( zLU2>}1^BQQ;w>XRnRRnWjgug|Je1>y{5p4Ox+eB8+^h}cpIiJCzY&WWx<9H~mT!M7 z9yLZdpPlq+BFdYJ8!v>|Vrro<&mwHrOuwOrG@%(fH=BFfoAQCx9cC!?8zG`=afhb! zu0*V#n|*43)F#jfs?o!$smXO_vs4Uf7DHokR0TuwtJa{#O=8MJNwdRjr-W5x7j~!& zyC2bQma;Tc3`^C8K{FgI?(vjQGjF&Z7+7wZ+5F%~ZD-GvMe3!ZKUaxi=i?v1 zP;S@+P>E8My+*We2pOUGVE%Fj8SP!3qC-IaE{R)DpSKyVy(|Cp<@PFK4c|@av zb*QFR(&a)(0mpy~VFiQG6bvEaLR3Kvgmg)ZVF*i@YP^$+K_g@>cEWHYuHXbr7c2z= zjSQ>o29#eA3?&U)8Wbd;D;S39#yisTq=FH=>&AO>@jk=0qH*OWE_(%h8NwL0Kbl?E z0YlT{8D{RT%irAF*1rD`(X+7eQh($p5^9th$Gqz8?jPbo(NuSAzRie5ot;QB5>)#u z($%gRz8>n~f;u@@V|1n5bSJva5H}fKtgU;<8kG7z+lo9iJXE;0cG@O=D8UF)fzr(n zc<=!}r1Mj!e@uOGBX#53KwbVNXIN$vJD&;$S6mVkrMg^1oXmaP zoC9|IVc0?V?tOlC=FVv9%s0tPlc~|0?B3XP@~exqOW=}MZq7_!pPBk8dF2{QT^LO( z{&DIwnHFd^`N#@_Ei=;D+4@+ySxD*SuVWrKhK=A)!vdW%hqQTyMH=n#9R2Jq$=S-d@T<{iuO@ht3+EX&=EYYC8^hE8t%quQX|1KV zR|!3~sO8%4Flw~+FZDckox5_z= zGVe5;N2{EZaE-$~Myd{Mq;U;B^*~3J(lO<9&@$@hRdmoMYQvjIvd5O!pa!+Hq62I= z%%0VeUWq-U4*_|Q(#?1dW%f+MbrQTS@MS>WC5R4^MZC9BR#`p)&u3VD3yZuHP$p0@ zg(rXsEdBu<(^zt}a_JuGRLVA*mkk4#|Y6js@)Y3XV*CVA#Zszs(K242!)*^XY$<5Co&GmS7sob2C3(+-dSEtk8A~?B)Nv?v z^a;jG*qL#$m&|3V^IUY(c@;$V25W%PE*F*cKa26j^nqHyx Qa*`jSyzz5oCK literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Employee/Cook.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Employee/Cook.class new file mode 100644 index 0000000000000000000000000000000000000000..c1ef999b2c2009a158c42b150013b66279d09ad4 GIT binary patch literal 2700 zcmbVOTW=dh6#gc5vbM8!ZjNcWl!O9x99oyO=_PIpiQ~{DPHdWxP%f=D-oe?{-nG{2 zibyT+|X6c(hQxOqv^@VAT@@OGF5IyoiR4Bz~GJ>DrMP`)O0>u$}e$qURlbK zr8{Y4l-z=1YT~_ObX&_>k>O~QDaQ@ta*V-8x;h$6lBV6;g=FwoS2*G@oNkh+Dsov{ zhA!p5GBHf;jM=Q@46TOHlVNCQ(4Ew0aD~MVbY+&QnD{)UUMo6Jkz39lF${;BhZeAH zrGlzhw2}TfOUYcGQ3{nk>>zBaJPNCjQ#9S8eaUibh8K%UmX`O1w{MKVbLER!0@Dpk zdv7I9A?rNHklJl@)-sjdm}w|#Mk!kJD+Mb3ZJi`|7{$=n@M*S`%cTv9lbeb6GrS-Q zo@&Xz)QH6}vP+d75eI|UaHJ<>5@XINnHfHzi6-!h$~`3Flo7;!8QtiSFe76Y`(!*L zhJHLJAtfV?*JYf;oP>E9Z(u>fqKr3jo?$d24uC!ZHPV;o*0Q1Yl{aT(>&Ex?&9Cj% zyIWt~eQ@VH`}&uE-@9tx_|g7t)xP(ky>`vMdh5Z>+Y;WA@iqn-#&^al``dRu+gkm+ zhVs`>pV;?5-nxC={`6b>i*Ja}fqO^ByBK2FSKoq1=`16H3sl_A9dII1hGWe+RXdj< z_Wv9!Cx$zoN=-8y-W5p0VMu$esA@S1ieZ;!U5&bSs5@t>pZdvxrp^-`*c%>bDCkKl zx<@AigY#62ctw?+grxejA)v!A&V{}uH*@| z$8mVr%peuSq8t_YiQP%Fy-^tC(PZ*sVkVtTolhhff)C|YxeciyI_WkB7+OTT(9A>g zAbM#G(c1@bL850c@+(;6zy?|(d)Tb@IfFJD zgV>8F=_zJ{gE_OO@HAly8+E4RAH=ihL#tz>MkQYn$^J?tN9ZX$TSX*wY9ECFa&(ic zpp?stDwGV**8m3Ts{m+l77W0l21izNd;u@gSE0caQ3#SiWN?G%f1%$d+Ug+$oIFla zv&AW9@OxDNjhaIGOQOW7UVM2C}~kU@g@V^_{IB(B&mjnFo<_>M>Tg< z^W`AELUEMlA87a*OKNOcH6;xzc$mRz29Fp99M=#o!_A5?+6C#@^*ys-2+yqBEiR>S z?Lx_EHXXZUanCDM)#{)vGF%YNmgRJWcqD8eW#N1%55urR5JyN_gj8N(7_IE_175JW zT`z1(*R<=jVkla%WlBph+=zys>7dY*T%$hGUCTgWI;S7%Hcuu80HE5X+s7 zP?mLJm|Qw;^zNf=#L$Rjgqv>3u?AbroYO}WVM zOa7#2rxV4uG!mu|Jp>A!9^5O$o3fnQW=NGBgEnorV%p+KySXdeExxO^akS#pxV6n) zQ@w|SDcLYRhP$WdaApCdOERxmM{2aMb+JX(5iXZ)mk87CmcgaU#S@a8L`W@*o3X*yoPXHl4Ox6RW0j=1>%HL#@Q%6QChku;K?ba`uC$cAHh!)bhzMMcLto@7wfv4LqFL%5)00+ShhtK&Ot zGAx|y){Qdh)R+C&PAKE;SU zN3}9aAn32Dp4LoZnp#y-nTQnW$nS*x2NH9yNhSP=OfShA=~ebgCWC-(4I}u(uYuuH z0Hh#4P?)Mx9-{mUJD7|CNqJ zj7G!H{!zwzj|n64+g_7*y}Qr5``o>IzyEyy1z;0T5|FT>Viosf%*wd0B84@+844y< zavB`*K*1E3IR$AhA1avU@{x>n2KiNSr}(`5hT&<|-tQTq@3q>Fv2S;smUm!GKKrRVp=;+E;_r%;Iu9h3YPFXXxl}Y?RJcK2+AUV!mQ9B3 z_oF5`wA`NEWhi8_qsEd-{=UtStU8{()9dWnLEYMO$s&s+wGRxhGu5_rXc?~MwG1;1 z9Iutnj#z?T^_!NvYXuI^Hb^OXR);d{|EHtIZaJP4ZZphW!lshlrH+Rm9qLKKq&u_1 zUOvgt9Dr1{2Ts8e((6pa9yl48qxe(*9#=E9rhL7c}h7CMs z$d52y8Wymr;T9G(OhVT%#kVxyrlB)ToZk|!jUm=_eUE6RGuffKYkO_G84~r4;ZBOV z&JV%PF8X5Bd?82ACPi;AR+!^70FuN+NFpO7@c~lvymmrLNZ<OtEx*Y-w->2#PN{}`0HfRPEojlo5D|hA{5Vb( BEiwQA literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Employee/Gender.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Employee/Gender.class new file mode 100644 index 0000000000000000000000000000000000000000..acb2538b60ac25a403665f43bc46db96ef55cc4d GIT binary patch literal 1122 zcmbVL?{Csj6g`g?3Z;V$6&+6JkExU?b;)!wkYx*D>QdbYlw|Q!fhU%>p*kuMo$gpJHd_o^@8(W+?06$SWO!CK=T4$Ff*xnc+pgfRM}CKg zZ=8-tCt95S;61~B*&aB@j^#O`Z?&S(75$nyujqmubRDnlgs!BSa;d`ciL&r74_Q`s zg&S=%6#paRrP-#YL?2voA=9EZIMFDiOiEb>()F%4z5HS(byJM|`h5DgsfT(i7=>NF z=Sr8dlh#(HK?WA(AT1eqget@4JTqdT2+P2AtQc58&OjbHhTOUTQanSl>ji@7FPF`k z!VWqE-i=7&lUb|cS**>#{ZYH<5@>^@3XYisTtoiBDX>U!xOag2FONah%*B zlw{n1LNB0I)>lrE`W%O6>CUffxFMzEW{g=y8n>`I6|zr-$fx=p>R~}sPLV!ACf?|3 oyvZhiP)HfmR2`~gWLqa-l5J9)PI9CfB@&aEGTbIRWHERD072RZ{Qv*} literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Employee/Manager.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Employee/Manager.class new file mode 100644 index 0000000000000000000000000000000000000000..9b5fb4e1776109d686bceebeff340de76a23fc5e GIT binary patch literal 2867 zcmbVO>r)g*5dRGzcZY}aP&6blki-c1xM+M3@ey7s<`5!?QInX38;>=2yH|UQDZUvs zMvW=4VhJH=X(B!<1cfLdpnObK{*2^y4?g)Hq|&py92b=sth(Eo>FNG;_iuW7_m96v z9|PEgmJBSy1`l$v(L>8pF?-*G%_wtYO9r-Ln;YBR_`r>FH!8$#<$P43TFiF1vD1TH zsL8-?e3$`0YF*glLLI|=orfb_lk_%?Gq5U#^ewU?>)RNv6jk|;O2;H$NK%5n23?bt zV40r>+I+gI1dqzT0FTN+B_ioM*A!o+8V;*UWk`xfebwPeNNwjlF=>?b5dRP3Dt=53 z@QU_&2dqMq13^B$DwnlNRSC$ttSVe9udgX9ZemEQR09qJ)L|IAI5J@@DGQ*HLtzl)$uyu~UrdhMe zV#t=B&YNNP?3i=qkf@7toz8_$E)tStMQ2DY63k||w9=9DM#?8q8tHA3fTR<<89}bs z@@SN3VOU)BED-`BH5?5xfT&VZrBNTd3fI=7cdeMMJsuJ_WZKLa(@f~NzH!yXh z!@STDd;DX0d|)g#-esP=W_&kH5g0wU<73}X-oI&f4w0p;v~f+Td9KS=vwW0HUAbzE zjF{&J%wNw6tB&)eAMd>)eB0=!&KeWHJQ@Fr;cer_E#uk=o3GeJzj^6l{Lbj)y_4q1 z9b@$7pT{rJ&x<$lmJ9p6_!tMgIEX{k{1pCWLDViv7e4XgQ>=C2GcOL~a~J67nz4#u z!`xb)bNCD!=Vmv3`x(k!&d}*PuG;cF^*dO5-o-rc~Opn((p7ExwPB&vC!tY_rL(5+f{sGhy4>$STwPo5uRBm(O`UjFq&de$FI~I! zG5qj9d){=lB;K&k>3Fj<_kvu@ij&%Bg{p?Qq!4%6Gxg*MiIir0yGaVQaTLw9wIXp zGw2JfpjQ(5DoSQ`5^7!obwvVoB_Rq_HUp4u3DzYUvV>s~ifLDnzJdNJ&oeBw4D;+w z$58kvAv)<>5GyGz8)6@kDtzZt77KpIywpB1Dalzlh^!%G4z literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Employee/Waiter.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Employee/Waiter.class new file mode 100644 index 0000000000000000000000000000000000000000..8a760fe2f9e60f86da21178e6a97087aefd2d226 GIT binary patch literal 6564 zcmbtYX?PSx8h(q!%w*CDCK^tGu&Zkr)KM2%mx!25WDN#_62W8LwV7#>CNtA<4%V!D zfPfI>2(Acn=n@GDDgj&xIS}?f-21-w$3B?}`Q?8fpWS_{yJyl#7&hSZB-Pb5U%l^F zU%gfJRe$iG{tEy;hktpn0MF**vxv$fCX0AJ64)SXU&+UFXmR7K9z2h)$(FAd;2Zd+ z8yn@zCJ$b~W;eFDvDJ+i<=Zw7wxiXJ9d5iNO?H-$rp<-D9!#@%UY2IxD!?n)R{#~S z%3{9@2RxXA*W5Vh#vwNjyKzMJcwH86$l}|wIO;;X2lMc(htO{p;21hwIPSsic-DnZ z4}9|3<-uL@dBTOa1l)l{EN+CgsKC9oS}@^@8Prs|9lXMvxJiT&qX46^Za#En2Ux4Y8%9)(EJf)oN6i z?{;Huyitz{EX?kgb6gLGn?pv6ruo*WI%kRGN6M>f*Q*;;Ur3EK_~;dVtGG(AG-|yb z4{2BEJT^jAQ9am@nYT(k>Ng@mJ+2#6LFLMt3K5fYN9!4`dCO`15L}-W?O|Gy1!hD#nc84ptOAaG)df? zaIAsT6*1!ax)wiU5Ya*cbrbb6-l#==RZ&9?2Gm%*zNMK`8>d{!Q@GY?B(P{=@vOTH zfj~YtB`$tyl6wh9Sh9%~#m zq6Jqq-?F>84@@x1)+Cy}u4>h$y-o+O((*jr%)s3cj2g}3M)UBs2d&!1b8r-J#id^b z>aP%~2~Ga^!$vL-&nhDk4QNYsd8QOt2f-b3At_jb2NYD`J_U<$zrtMRUKid`a1zTD z)L@wl-3m_Ow7}fd;a$lcN0WOG3|{O`z0x;yqW{wA&8glK$^PU2-uMdtTsWiPU93^? zFlt@+j)M1aR$%7v(F@7$_MzRUlZU&84sIFR(UaP^DRtn~hvyF}cog@!(4*iSdIfGt zz0j5Hc>lxmJ1?C&H@v@_uc^bWg994}`?m9Sxcxw~ZT}K35gHMRcB$=q2M696Jby6x z!aIW(Hz(V6CwF%xPrskM`1W9Lzl7WNV)EFw;WytHYCU1$vT>+u*U-tP!pOzLDS&5~_9Q~P^{I*v$$(`SZ{wWYSS5|hRX`q1yffP(XQU%(%b z=}wsy(?w-rE#7DZ%dAavQR>yxm%7`NyY?lwA4(4Nvv($leUHT==1aAK}LeeuAGW_!&MB@MR@%9%Cc>qJp2}7u;osUb~R&+LYXP zY0yWnRHFhTwSdbOVId$p0 z&(0>9gmhkU^1L;ee^gu>nwB<-@PCfUX*EgI36W#!g0GMh50Lt1|9r zxiM{T-k9pvuGa#R!bLAus9}zNv_ZyAx4hm~X)?1mt9~QU#M4-|uA;VN>R&8hs?})I z%1|P_ETIS3R+m)|6WVdcsU0nE+ zJf!|6aPx@J^vDLINwcr0mWFsRai?f;;U7E_Y7L_)(aiIsh8K&d`QbsMunstdWn)<9 z;X`U97}8=lTOBWRnQ-WDRL3lLkEa~=wk(`_wITd!D71>R&0D}fndFQc-{pK0n0;kC z%;ndc1^g~_9slpaLY9+c`o^b_XSDgw#Lj#&x8w7A{=$5ZWhLJpq`lyCviBT>SDeKp zS>&8CJ5;eOK`zVLEN?(QZbT8kE&17^Slv)f2uZdCOKr$a$Uz?4W{!sR-g*|f-gj}` zS>%nt&oE7Ib-f-@A*eYz>G4dN?2t;0P0>2Sp>8mUAmPv`0|LbXhuQ z;TC0Zi)0#2Jb_i2!PgO24t~0Hb28nO&+F}H@hG>giGG}JKS7N=$xnn&Ibtw96NCB; zxN3vXmHzgiqz5+~M3H2;k;t7WkkwL~BnMUW!y;M7F*J}sM;X>TNaorkkI^z0lcu@o z`)aIVS;>|fPLK?FF=5F#Wqv=V0;9%Yg+4<64M&KIGa)L*!8+HjHrHaHz zwDb5Au)%~VvwqA#2!`d0=I;Ve6HLbUOX+zOQ)w;NOPhB9)1Eko>1Q!xeh+5$;U;SG zwm!@fcnxt@W(#g~b5`8mgR+vj9hhxaKGlIzv-0Ta+m1DDJ;BKy5U?U2!3FZ8JT#L^N!>PGj`uF|-aS#?PU3Zu_XK(0ngDNzyp!b3itKVt-*3JHd2-)# xoH~{iPErcpj@YH8KzsS2f*3hm=<>*G#$WmLu;tJAJN|;{R4(Y7pn3)N{0}6bkO2Sy literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Items/Item.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Items/Item.class new file mode 100644 index 0000000000000000000000000000000000000000..38038aec6b92846b5a8253f6cb2f2ec1df9d2e35 GIT binary patch literal 942 zcmb7C!EVz)6r6P&J9Z6eLldCTk^&Wpk+3*%0QHgxsZvysiXw4z63g8vu`Ao*w*ZL> zi314;vPAIOY2PZ|eEF;x5;;49ADy#MS)Mhhrsul0{`q$MFk*^VEPm8sgDIx6*ev}=Dq{Hfx z+_Q9*O{3RR*>RMZXX@5GczEo=LBoTKEe|#t0>OVe64<^P!JElEnic{yHpU?*W^tA^ z7>b%ZLp9SY`*F1(sNn|VO`hJf(&XCoze4y=FJbt-OVmDVK$EehKQ|a1zAiyq*k-;< zAYs^Hg?gI0jnF&Q$Y6t8*sa|&8)_yEC9&!lQ?5(+svPxgn)g6^w b`{X+K2bUUw;<~rdl=-)*?nYDhwe|g9T=$Y& literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Items/Memento.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Items/Memento.class new file mode 100644 index 0000000000000000000000000000000000000000..3166b9fc3897e5147cc74b60ddb7118167a5090c GIT binary patch literal 1225 zcmbVLQBTuQ6#i~osB~paaDoED6m=U&6=z5UNz4+HB|{RY7=0`BI!n6Nw4G6ZlMk9` z$TTrN`=gBC?It6+ub1A!X?CV^Z2CyGkV>07O+ z8z0IizS7wq=(DaSz{V5`0yD#DcpS&>M>P^QahxSx%_HH`GP^Z-PEEY$^NT?G^{5ux^ zl;B5V*R+%LG~{7$Pl>o*WMl_AcR-r zRm{^0EMRd!@r=HrC@6yY9>z8NhPk`;<%FYO?gF_MPvQSBR~3E@OGL{PNiiw>Wy;l; eqeiRRvlM<07X*gYk7p;PQzBR=B3#e-Z~Ox(JsWZW literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Items/Menu.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Items/Menu.class new file mode 100644 index 0000000000000000000000000000000000000000..16d0f3ee982689b5d5eb6fe935d8b1264e4e6a6e GIT binary patch literal 3830 zcmbVPiC0wD8UMW*VD1c~jMu>pcL4#B(IgrSm?p)f;S{1}taf6TJYfPO!wj8ynA&s` zAqgsi3kg)HNHkh)t6&rmm&C3~_a)ueb27v5FXZ$z{qDQ(4WoE^j>W_8e&2V$^}hRk z7vKBO^;-ZQ#lP(E;mZ!}!b>)M#Q`f`5|Xdl@HK|7Gkk+#KSL|S0fsh)c7~T3USW8Z zp@ZQd!y$&l44n)|7`hm`8ICd>V>r%mf}w}uHHOz2dKvl{zR7Tsp`T%Z;ad!+7zPsmZoI8?tU;HmRR1NEV1Rnz>Dkf$Qt)D#X?1l4HNQ>poz zqMmAhsHKd|n`o^HL^TDjsy*sn)zhK{f*v8EUAvcjs9H;eyjR?_UH%}^M9i|sMZ6cn z;kswlCUQ7;m-HA^L-ii7772vvMM$BrEfNp~S$1tvkXi57Dw8!nTu}HRag8d|D#CT- zFRLmL@;}?swA&xquI>(!B%?eK3TTfjuoe{VP{6CgwQ6vO8VQJPLno~+5N&wC)79%$ zpakf*QbC&55Qr+6<<->M#%i_M@NA>fM1~ZY%9?TdPt6eipJyIz2)`)fu=3iVQL)1t zZi&?TpALv~u#4>yk%1GR#pj&ZgGTy7(J#qaa1yA(dO434p>2|DZj66salg*NB zs)7-st!rvvNcd^(h#Rys(R(z}^-7W@D~e*W_V~#7Wb4?}*lCI)=~(}%#PG{>M^af` zLAZ@|j!vDuLCVr?k|l+dT|I%}j@Y1Zn>aWSd*fo$HwT8silaZJFFiTCmQ2MaE{J*7#v?%w0Cr6E7BVCK->B1Yfr>0X!5fmN-m zQ;?miFP)SXK6iKj?~78YG(y8I6d+sr4}?85#6ud*b-&s~bKOd_PPnTy2Aw`S42KHD zB$Tg$+Z=i+vqiicq+q-XG^)2a@CW>n+)+!#x;x{&mz3fUCPw3fHw39*ev{hhuLy@~ zRc&WLYamLzks6KQ)v5IukIt6Vl#&mT9DaA#L5Vhts)C_=PR6h*++o9?#Ao}Pg52o| z83^qSH~Nh?PNwy=TC0U4`)v3J-NCAGxUr>~?qFpo3bB#O6ny>7qgn2E75zUuMHU739sR?|!){So**9u!8=S z*+qZbq`@Jc9-=JbiGhOWby_8)4kUzVLc(;|@dD~eqk*`^w2Gg!5h#~wRS+P|(50E= zi(WFRY28RtE4jZ@Gzv@61gySMq+LaNk!$@;WcaMy=Jlm<=Jlm>yVsY&9bTV}XL@~% zJH0+v2A@S}wYq%V4JVjil8=s)XDGg>x&DnCvk_IkmFh?42X)sqBxTR*cT;@rG`O;v4G*~DN z7D}*q%b057wOgG%B-}8Lx1t5>QXEw6nQcAJNauoTNeiT?PqtG%z^gCFCAZaa!m1LP{ zLI@Viag-p8X3-~>JNTmBc@ffb!SWGpT5Ryq)`wV28c}G}Nut|4#EE`O7deS`v!t}! zIz5b2Di|)G*L7M*w%2S#9Hw+FB;Pz;_ah_l3YR(K*lxkw*mez{zK7p&9Xmn)G5U;t z2JcRv0Vj9B2C8f${o8$&KDOK8G`8O=ehu8#$7n7N-((?i`C*Y&$ o@Z1$BB2MZ|VRZ6e(u>-MztZZU-9O{+_zM literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Items/OrderClone.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Items/OrderClone.class new file mode 100644 index 0000000000000000000000000000000000000000..30c890afb297b404d4bc538aebe491033ce2a2d9 GIT binary patch literal 1513 zcmbVM+fEZv6kTU%J8dZxD4?KnQ=t@OKtUcLB&L8dDVGF7;^WXxaInlY)2Wen|HVf! z5lJ-h1NzYxG|Z-u!kjFInCEpY zq@m-fj%PX+bu1|)ZQnX6*>zu`r*v$-GmVCCR}HbOD5Uo6Bgga`o~2N{;$AITm4@NF z&e5@LRIEB9Yo_m8o?{fQm zR&*=$WJ|VVZ8uI1EpOjEtkTj~a?57*!1Qc6N5+`{#;z+Y--N}ESFyZe)paakQkIQE ze||dbtZF((#?IlfRhHHjU6XB&AZ^?A_ZqdD>-kn?<9*qx`L^pYxUVhnFGAOzZK&9d!!Z~SAtoytj;+6{%Kwv@WF-d;PGzcR}e(SPu=%%`=c)SFks zZ$nBdB*`M870a)SCB5f1yt1`v%bc^V`OL{x%%BfBg-;52RHi9CDLet892-v%KVvAB=zBGs_mn`2^G882BhP zq0W6b->Zf!f9!($1a0h>Yd=pf(ZL-sP`H39e24b>0v+dw6}rz6{~V+aaP4N8tTBRQ z2{Xu3CQQT~+~rA$J`v~#{!4tXDiJnO`iSJ#>{ldb&gjtiWst8!2LyPSe1QA3j?gwv z&nVfCvB*SFWQ=j0EPF4AA!JleIvT#0kLifw8c{|0L}BXE{K6`Wtg>`X O6}cRuQGwYSX8r(b89UYh literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Order/AbstractAggregate.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Order/AbstractAggregate.class new file mode 100644 index 0000000000000000000000000000000000000000..1d7901fe5ca662398a63a5f5b00d0d72ae6dc8da GIT binary patch literal 1447 zcmb_cTW=CU6#fRbAh5mI3Ki?6^$J+K-m9e{sb~!ewI(G^>e~PlTm+Wv4o&dK_zQff ziKeM0{s4cJ@tj>Kz35YY;LM)OobNl|%<${?_n!ckk&h#Rr6{a8LRg9+j{9sLB=8WA z*gR(Qgw4|^mZNwk5N>%|V5;1dyVB}uyJeMaPv-? zde72Mr_r>ny7GuXS8A=?j#YHpZKqRgNzb!3-MVtEwW_CGS<`EchN~J$n-n`!( z0u;~Gc{pxZ*6Re4DFt%0WT#Qe0ZJyHC^JoPrL#hcxGbLKNKH{pj zv&-^kO4+|{7~j&e_F+SI2Qo#dF6d!>22xNYcf^oJ3mTmCYcC=c9OTVh)$tSut@PH%#2d9f8%eTsL|&C(oD;Vnl>F_~%nH z7U&Ts=!J%0Fey--?@f|V{OEg(Vl)Za3*_w}OkY4Uw-1r~fzZxA!rx%z$c%lVL>Ni3 z6SM*`Y7)mJ0i?(?gN>NQMe@?eBA3V$ECdl@m?rJ#4rcBvjJd@FM8X(#=l>AKNKkL? zJRj5!Iy2H0qRuo;T*Wo2X0(*Q%cLqs3v%-m3kF`GdXk@f#_!U~7-_~oKvdupCVVaj zI2Xd6*rTLzWYlSbnxWQ7pHKjmJ|vVL5E>25Ii_)wex&H^fW<9hLFZ4FS*+8_Q^W%n pF@ev1IV&9TGwCDB#s_dC5RMRtA&^0q>Vrvhhcn;BB6SMk-XDwsF|Ggr literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Order/Order.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Order/Order.class new file mode 100644 index 0000000000000000000000000000000000000000..adce2b28c72571d7f3493c5ba83ed4d2c6f8a629 GIT binary patch literal 4505 zcmb_eYjYE26n-{olXSZ+(3@PWf>>!&Amxq}tEDMeOk1P{EMB+Gk}jl4*la7sD|kgg z@dF?H1M-C#FC#F>jN@m2g8#t3z&PS__R?(AR71xv@4mP5oO7OYdH46ffB6-_K76BM z1JZRcaHbCHk%?kjMUCvNhbhBZ8P3U&m0?DPoDBJT6mY&CBd}yBMq#U1jak{AQ+eTS zLA?;gyoy#_l4~hK%Ou8Z%gkkZ71X44 z+fcCDJ)5=7Y$C}WIkD#pJlUHv(z6LWpUa#z6KSJpW^x7Hwhb$n7|74erzyNDW#){L*_lbh8rLVY+-XYXr}XSe-7;nEZPwV+CWElE zN>)o@6jC#WeatnLs%dPjxUf;vnG|E{c||yLS!(L+D&vVLgG)B63~^aRR#BBtqpL2p zQe+=yaadN-JO9L0(A-(>j`-ZRm}jQD$Mtae^(r0pl?KfbMJhdZ3QNkj#dmgb0Y`a9 zDwg5*F9fStj-?DN&npdD}cQ-=EF;9x?M`hF1eLp*jP6 z;SwDR8mM~e+^}A7sE*=8HW59YcCRYv?OZ9e@T`!Y1_s~Z+Vio^i{&C0<#IDG3Zvus zq`@{g!zxU(&C(cYMhbRUY07A+feCClEy6phb0Z+jEU}E4{G8!xZw;F5b@{H-UN@FB zs*`;2I`fJvGoW9ZZ{w6@Fa=q!mTu=Q1xNlZ*OJDZnKlm1AM>6OU(8<*&-*)szWDzj zRauB-ex0u}8cx&fpDfyzK4tf3GM14c9V^qRj^$^qDdVsy9bI)Ya=X0S8nz=5#U%}w zu}Q;5Y+@=p54uzC{g$QAOViTu6gF#kMutuq;^@}!INCKlfhRR=#kMFu((o}p(eNog z)9^X2@R_fwH7u!24PPLk;Y(cAa8zd3#I8hDU?s9Oe1!oGU*jrYi)Cg1D{myL{mc=z zt}EzS7HpY+7X=3&L1anD*@R0W@oiyCcmzx*;%>**PK+c6#|MuO4~-16avMv~?&~D~ zJYK=I`5oCw246GlCpxVcM~n;nE#eE#K2Vc$7KC=PW()5BV3_Sp!J=m3 zT@nyAXqMklq`5@gRwQr!qm+*0bMMlp7Mu8wyMaH^F@z+AISWY^J6~3S^JTh2!PCyX zgXhfrh4mJ$Sp*B~F0NS*&RrG)zfC-2VR7u?s(>(Oz|QzxDDj^Vx{YxBK58cJqV_f- zrD?P@jl~;pqwYrsa|g%uh;VG=AO0HD6Tc13w6ukV*NUAy(OeDKh22~!*n_>E_5`gH z?X~frQTIJ3AqZf^+1wBiu3Zq`hy9*#A59O-?f8~O=BPvgDXV465cO@&I^rP+x)8!Q z5YOTO&x8h{!#5=Q12=+(bX73KWxtm~2P=Za%0ad-3-TO6`tZDG$uWM#{z$z0Hey0@ z*x|(WYA3zgwTxG8*k7Q8OL&Bd&_!(5)PBwmVSr<~ziPRu2P&AVAc?^W!u93CeHDcd z<46VJaJlfIio!2qsDiLoE}W_$9FiXG3D5B>`O?8;i`_$mf>ifCG%ENOEu5@U@EcYS zZ@q&xHy{34BEE@v4ZOlyoM2X;CY`T3iX^StdG-=gPQW_61RLhsLGd#SDkPe2;mGV|Dw9k-jxi7Mu!pEhzG(3~XfEM3 zI{p@zGv`qUD}bpkV5;&yI+)`NOzkD6R6~pnp@j{hgy>p0k0>q%*p7K<3QpjpXIIeE z$TFT@qNkSwRs}shMasp~2~zIn>St<+-68N zd|NQ&E$N9?*y{* x#3YOpHZksC^#e-y0-^hTWY6&|uweLB%(zHb&9q*27EtF?A z{9e!Z8ZHk4^IX|Nec40DQNrO`R2de!O3>?+`nmQM!%3+;8Sq%#OIsZEF9shB$A6}w^;h>9Vk&>;@4Jz;9)-MKd1Z*DoIs%PA?18HOD%aEtBco*QlRJ)bO^%uxEkP|P|9{D@mV4;oe_ zj=Z3e&s~PR>4Y`z@9@YIsk-^pfHx_v`EM?U)QT5)@hZdkf2h34?J%hEzDM22RA@vz zZbuYJ$qGk$rRH}pJ3XQ8pxs=#cnzyGU%e8xqni856WucVroSlqW#Ed~z%c_$c+Bwp zqN`+J0#6Lw!fgY?7%?y^4ih7^u;+6T1u-ORei#s)v23oV*wWsCTZ@VE)86*U-OcyF z{*JakYJP2rUdRwVFLiA~FaSsr2`PyOFfu7>6$oT-72{yIM%pw<@#!6~FG!q1`9vDS zbvjehrx1PulU@8W64I)h>fBc(PoWBYq7Q$AEXElMQ@APp)EYvGj7w1H2ei5QsS~6= zOLuR&^XnS!27yr)9MSNIOKYHG>}(#Ob1MOURVAQdAimBG{x!YLhE lzpC27K&6`OV6buwCJ3C>s}n=fpIPFU=q8=PeX=F+;13mtAkP2* literal 0 HcmV?d00001 diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/Dish.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Other/Dish.class similarity index 58% rename from out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/Dish.class rename to DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Other/Dish.class index 2595051daa42219fb2076956903ce1869e5c631c..770515be0f10af3abb2a1ca8373ff8434d8921ec 100644 GIT binary patch delta 47 ocmcc2e3^N|EP?#o-26P}oW$Z{egBe-)S`*2GBLy^D>H5Y0LY^foB#j- delta 47 ocmcc2e3^N|EP`3s{gC|poZ^YAGBLy^D>H5Y0LM=foB#j- diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/Table.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Other/Table.class similarity index 60% rename from out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Tools/Table.class rename to DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/CommonClass/Other/Table.class index 3ecda506614a8e6cd0ca6a44784d1faa1c735732..02b5030192c6b37b48c54defed13f3522748da71 100644 GIT binary patch delta 46 lcmX@cbc|_2xj=qyZhoF~PGWJfzJEzZYSF}YXH2nMIRK|M5`+K% delta 46 lcmX@cbc|_2xj;^0aj{Ekab|j+en@_PPVvNcXH2nMIRK^M5`+K% diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/AdapterPattern/Coupon.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/AdapterPattern/Coupon.class new file mode 100644 index 0000000000000000000000000000000000000000..e78f83ac31a46a1286a3db0b1e666cbfabb13ef3 GIT binary patch literal 337 zcmZvX&q~8U5XQevV^aUL*4m42&|b{ZgCNufPlAPt_ca-o4PiGVvxUBz2Oq$PDvq)0 z#kmYW=9_Q6`Pjd`1GvE~#YKv#Ld?5{6sC`r-s-H@&SV>Ituwa@qm_3ZYsW9T4m8B2 z=t|oaJ~&=eTaaUIWLf2jnD(VGZiz$d@`FxcFkj>fsUd#uPtE3w|Bjt(d=SeATZ`lA z%7@0g>#tA>cT|Rqy)%`~O6sg}jb^6SWjSqaN%y<;ftRIjWblLEE((*s=bm0GDp&!D lyyL^#FpmyZ#}k_cyj^by9QQaJCmlTYw;QGfsd literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponA.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponA.class new file mode 100644 index 0000000000000000000000000000000000000000..ea88f55d3f67ea7e0253c935dc2c1c4dec04bbe2 GIT binary patch literal 761 zcmbtSyH4Xk6g^{GagsG5c*F93Hz5*nNx=$~O+*y|5-1hTBp#WG!Z>oqNPNY93Q!;< z3JU1USR3qSUB zsDi%qd@+)N8gi{gq`a26kiPhHd6eOX&xdsI2Ag3#3{`^++kwz0X`V`T^Q%OqNa#3H ztt>}snEV%y!D7}LaWIK8g={z|;)jC?lo6D@T{@RD#zUXO&-S3HF zjXrE13SYtJ%tq(l^*hGmXiXRj-yQJGm(si z(mbRj^BF1!Qb~QtV75C$>e-J1sw@qp5?``!BavM2(X==v8uRIpCo;!n($beQWjG#) zAoFyj!in?(k;+iTTx*di&lfWph~Cv%iH`#wQ{fr*qb!b8j||(P&=UptR7n&?F4CY`e1Zhj*Ume8Ofdk$)N<6seWhND+HWoZ1p?bFdjj5WjI z>zblPKeh^n1sG`LW@+!xOE3ydzUSD2Nqd@$)@5S&1qR&i9az^jZeeztux?TLQRrP- z>%;+_U{U`XeJg|<(vu2JtWsoH!`rgs4#m7?y2f`329bbDk*dFtnsezoHcII(v2&?K S4sQO@uDsA%bM3o=wfO`g$fT

MgRgvv20T**EL``RDE)z!45=sA8vz-8I;FQ#t*0-v0gL z>O4npZS2|DxABg_(wB)~a0fHK;9kU4=#6wLRd~!$_hU8JT(OPi2nFq@};gIYVzC zg3Qyg3TM&_#9W3d;aZDSd3~{vf%teiEO9U32^Ic9KhBa^`DEA*g+43hX|+55o2Zcr zou#T@&QTa9|Fuz^(L|qQZqh0H9p*RUU>!{wvge?NXAbIUFr2RFl%e@>+g~O#G1Uww zt2Mq;|6B81?vWt?}gr_ zwLu)v2^RIQ(YHa!Aw8+k!X`zA7kF8Ad`~g2nXd7Tfq~=n(g;%BYkl4A@ TA_vz`v>T7K)>8YrU~T^ezC5Jk literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponN.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponN.class new file mode 100644 index 0000000000000000000000000000000000000000..20ab847edccef23b87e65bdc5bf94e1f1d7d6734 GIT binary patch literal 757 zcmbtROHTqZ7@Y1RFIPYW-!Jr{MBSqYjYc7!2%2cP7q(eTuuGP%iN8uc5EBpn0DqM6 z>t;n`yt#+A)18^lwC^9UZvYOloktq0S*+zSg>^G*WU!e*ErTtFlztcrhH|UV@3}kR z%6G4ID3yQ2Fw+RsNOPq-d=MFuCr7;?Qu<1SJ)t!BX_Gb6bWHp)q>rVN`h>yW+3k>d zBk+h)Y)K{B(Op-BH@rKDj|+Ny(BYvpIN40;TRCDlYY8uMb)fvdbUiVWz8Z3^MX21S zxR;(df4EBUna79p;|n%|Xc(wACC~Um-^9f#JG*~XD}+Kvp=u_D;=oOY{B;mfwF_xN zI*H$bxf%yWl&EdnK^8d&({LD0|CyAb^nLA@-M;8)hLiu9qDC*A2HgQHluTG!=jnZ{ z7*p;Eo`Fqk>P6!$G0tNQl@H-Kqq)3Z5V~kC0N*(k2D3=E4JbC@}@Q8Rlc)V?N*4 z8^8g}9C?lfVQtt;+m}sno-o@LlCZirp)2`fYbI=_bziAL5ss{b@QpK-6`Ff%T&uk2 w&I!qb)qH;5{(RD^jl+bKhp-(@qE^m`>!ae*X9PkLj{%g%7f8p3dCUaa4@LknT>t<8 literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/AdapterPattern/DiscountAdapter.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/AdapterPattern/DiscountAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..dc5e091545c184a61eeb8745cee1e2006ae85eaf GIT binary patch literal 1287 zcmbtUU2hUW6g|V&!m>a?K#SU1(F$Ab`hixhsihE&5kC@YllrzS6I{eyTy~rEr}*lN zkH)06Q4@cFKgxJ_Sgap!kWFUi-ZOLVxwB{X$Iq|d0j%M!j4a9t%;7>D7yb8g9G7HN zP?ey{kWh|eMZ#qnvOm2dVO2&7v*m2geMbqO~ZVutMvZHr;E#k-#7+E%Y`YF$1u zd)82QUG7*~lkb^bzP0~6i0fT_NWdg)2!?eAdCaxFKjaL#R$t%KwSjK+w6^P*R*zQ1 z?wOY9ZZH%o|HIWChDgKi(&kLdwD?o+O@}+%dS@W$Y(pRH=#J^fK{DdLGDi%Lrk36` zN2J+ugN{gHvd7&?mLXiJHW^ZFS2tci(T7153oz_IGLt>7eT3Qi!; z00jjU8CYGyO$E2G#&CbOv#t}{*32x#z#22NG$h(uHAKwjzw8LG`u_ldTiEeBbbW0GT z`%FHeG35J1ycyZ&6ruAJ?NZ)fQ&5kJNh~kXSVWY@G$KeML6*zV zlcyr51tth^24^WEDp82OJ{GVTlzERZ&43r`0V28RXT;titA2yDdxSU@{eYT462B3d zkfcCL0#O8#radV_(!S6GguWod@R5ka@MSL0pUD@Xkl+$^xlDc5sLxG`9+N;{t}+%9 T$UR4yD8i-rBBhro2;uxM*hEo= literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/AdapterPattern/RealDiscount.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/AdapterPattern/RealDiscount.class new file mode 100644 index 0000000000000000000000000000000000000000..8cb92fd4d5f1b1ec271c3b804fb5ef51da46e38b GIT binary patch literal 881 zcmb`FT}vB56o%ikuC9q|6VoQKR@@1j^e%XFhIh_6&-s}7^Y`a(0Ppa+hyvCMSj3Y>tlM+L!_y+>@ywd% z9vU8Acz8)DMQYehM%rvgVqj!SIBdyi6q-cGJrzcBsA4@3hFv;r$_o|Aoy+4~=Q&f^ zyo-8IC^CAG=(Ed#Bve{GaUsIK&~bQbQl(>#Sool{G9L-m&Hvq7ZGyX-M4Vh|DJ?&b zzIJ4KCOZ8LmvlwHEmCE5e(9PoYDn0hd4>}y`qMeMy`@;1sU*y8ZZ&zR(`1x(<-W3A ztlUm`YX|gE!Ydz3@Cop-j0c2+ds?YwmwnVwCp2ee-tL%CzIl|RPEU3X;nS?-JDX~w z!5^;xUKkwymb?(QunS@9@IBAMc7@eBYa3GyCZK@EaDvL*7;f-}&G#(4!nVer7o6rY ztiU)6c*KB*nJ)vduCiiOR*1L&Z!0ge$C>;ns0Y6=e;!=HonXNhyMprr-ZyqRu!XKW Tu5p2S2KTSiayVf%i+ubKFkap0 literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BridgePattern/AirConditionerAPI.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BridgePattern/AirConditionerAPI.class new file mode 100644 index 0000000000000000000000000000000000000000..29db050204815ecf793145f32cdd5b205bddc509 GIT binary patch literal 197 zcmZXOF%E)26b0W$1hKO64BEJ*HAswBl4$Ia{lO);Yu1Itt66ve4`qZzE1Q=$&17Eh z#}mL3QHU_ah!7R$T$g;{3&EeI^CMxrH;pZLt!gGrV`W!HOXZZ&Y~yUZsPZ-^Y*;qJ z8C_ONNWQ63UvuZ!YLRlQBq#Um%ZXL8aIiVP8Am}AP~GR6d<24fZsn1 IyY&!!0Qk%{r~m)} literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BridgePattern/FloorAirConditioner.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BridgePattern/FloorAirConditioner.class new file mode 100644 index 0000000000000000000000000000000000000000..96b5e9d9db4bf9737083d3640465451ee17eddb7 GIT binary patch literal 1183 zcmb_bOHUL*5dNCiz%U4c%fknVf;?2lXFRMifkgslRgxum@YL*db{l59H#5B?d-mwT ziwENmFd-&JJt%I7-u)dsy!j7|H9Koq!p4I!lc}1jsru@xs_yT~b9Ia^F#h79Sn@Jg=HDz`3OPlPh3irg3xD0g0LN>9v{muvQ1AibRUV=eev2eUFr zY2`^HwGu&+p(C5;DkoM%f%r_$N3=SPC=^A&O(`HQY@Wf+=u(gs3o;@%*Z^o|oo{jn z?dY&D>fiz{GW5)8Z9)_9;zMEb+6%keFxHN72bVBmVbZ}ArWqdmzjml*#KZNeBlq#z zy2u)a#ec*a!6C6Md}jONTjQErFNGCsZ7QMf)|oDF5?Qr$nLjy`!By7 zynVj6^WtEu^5gxp{q3#2%A4Ko%FmtGjA5X_Hw3LE%gqyM^7IuNt_&?ZK^uv&t3460 zR5{vOUxRuKRxzsXt0?by*3_zntI_bUGmIV1Nvch~A>0@`Cb7V?Mh9gJH|fZxwcaQd z8Js0WCnn|dFcie>RegmTM!e@mt~_6aV{u~gIFUNfk;Ij9Q8WmDS{ENLHCaEC8bpfw zenuLRv~Y`I{8)dDxG@a>Jr1L2r5jC?rQ6&@nhrQgn=F?!Bi%av8SF##cPGgx7!=@; zbm9PX;RIQ9&(T9NO1_U~dVsEvXqu=*pP$fj2x3z$;1mHQszCi!yQ>C7X*h{qf@($| a#WhjnHPSYDW^jX;4PlV%cCv@)J^dT2WlnMc literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BridgePattern/HangingAirConditioner.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BridgePattern/HangingAirConditioner.class new file mode 100644 index 0000000000000000000000000000000000000000..ada1bba08013dc5981bd4bc9590da74adfaf8dc8 GIT binary patch literal 1189 zcmb_bOHUL*5dNCiz%U4c3xW!wAP<%C84qhrV39zwBFPdwcxrY!yA8A5o0(pcz3SD( ziwENmFyUg-KV3n`?Wa&-oEce%V zAS1nIY%zHmGAyTsS8|P3xee)hB9u8*E*_P)J4c=hGr z#k2k0mp`^EKi@w;*xBB%yxrTW{MvoP7zPS_Q_yI#+&qycPrJ}?WoYCHno5jat%-nX zjx@Qx2KgAQVwBxiQQXO>sWl7NqxRoq7(42dR9kvexG{80Vu5Fk4$2m8)5T3|y;&+U zI7^CdP0HtCD2UnX`V2LUc+zx5JYR%kabWT!kvhwS>KZyM2h=< zMjDZ{aED?1M1768F%19R52I+McTJt8H{C=lU2&2&X)djd*4F9IU>~Z-og^b?kb^_g zi5<{|Q>4*rM-Ry;_#v9<1G+wa@R}F~5a2mY?)r>y! ZYa-7ZwAy5u!7XAoh_j@(lRilQ&>#9bP<;RZ literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BuilderPattern/Combo.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BuilderPattern/Combo.class new file mode 100644 index 0000000000000000000000000000000000000000..559aec22c2557086f60c433364fce1e561cf22f3 GIT binary patch literal 1485 zcmbtUOHWfl6#k~Pz2&wD7NH2r!vgY9>ibn5LXl`vl>~wdSGVn?9eR6jbMKUdor#HC zcSem{mzwB85-|P%e}|&3{0GK!AEYI;Zrq$R=ggV!eCM2*`TA$~3xMlbRMC#p?HI&R zoE%9NqZo^WAsI)&5p75+m{c&u5Gn|}w8#+8ZfaXvO4p2HYE4?gD5m|*B}bE^OuA}` zJZA{c3PZ?whPH{x4TfOGEReS|D-8aiR>^T|UCZg@iD%8crf+DLaBSZhlqF#^EM$41 zmXfAX+!Uz-w?)yYYEp8`NGNd6MBJL2WG~srB{ZtT=gnZ*UXxg=PSaYtGdWDP9tLIM3;i;7|!85L)VgNN?Tf5^*)y+vtW0I zF%v;5h6}i;;8F~ik%-_*1Xm-t#xVC^wNbwMFdpVMd0rlJt!>+qSE&1DjW&9`(uJ9# znhZ(9<60%H(mlAr5dHD=-OuN5et&+=h8YqSt;{o~k=NuSAxpHfrDjN)#(1*^9_=YZ zx6ABsG6sb%h9Px>5`KTSQ%@NE_4fV#i&uX7=>C(vZ+kngrQoL1yg7!^dac6PGRxe* ze;&^jEiX-LTfqWdyR2!JYgLBWJ;UHuM%Qec6Zw~oJEIda}XgLu52vUlWq272IYRJ5paWZVZF}j>8Bd^sIp(y^j@gP3xE!fD`B;i=h_@lFs2flq5j9 z<0AsoyYzA36M}UR)!j@GK%WcL>jnEjbj)Syqw!Tg^Gg=4l_7nQ0-u31q|0+?!-nE z`0h{`4j&8Ge>S6thrZF~6XEdYOE1yQSa=Q(7qTS>Trg;t!WU7UAzi8V8I)GwaE5$W z`1~dwSv-6&EsrXtZeW{U-wcJ+Nl}RgV$9H4jUpi<7~PVPZ807+mPPYlgu;JXh+Zgc z0?WEQy5r;6ix?V}>S`#G;Xa5%n|Fk~b#eAg3E@`PXZo&jYYn*_DJQfm8toAMr*xuBqnyC$TqjjWnlhkJn}XH8kb0aV{Q>2TYANLC zlq(17RY+}6mYeru6L~-(PwJ4dn8Z>Nw`8Q=ZR{jo21V(m*50AKQZhG?K)~tJaCJVM J>btY9y+3~g#ohn_ literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ConcreteComboBuilderA.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ConcreteComboBuilderA.class new file mode 100644 index 0000000000000000000000000000000000000000..5d5b0291432fc1a76c39c5c961f66366336d40a6 GIT binary patch literal 1093 zcmb`FTTc@~6vzKldfBdnK(PoYH@TI9tPdudfD+oqrz#{E-nYAxGEjESc1yxXAU;5h zFC-*>1cNd465l z5Qa63s5q)&OvOhU##Nk%U^0R!hVY_vr2mqkBQdki5KOzaVCc$9N4zO*=Y;px%oV5- z%et0XST{YXbhQ}tH)N4vB`fTb;k!#NTcmbZt2$MZ1zUJE znRXq^6TV2h+c~#7x4gih=Tu)t7B`mv6{))Lq_b5MtDdyzg!-CW@+|R6s^bo}B+qY} zJ0?db?s7~cLAO8u@crWWB!U@^BxV`--;bZp_m9rL9G<=3juQo zON!xMeerYZR*UuIR|H}mWds`po#sHDQQD?K(d(3W8%n5*a5JTsDDjq*zBZId8Co-? cpC|(@Dfin@qGjmKlp&%Fx1{vbeFGS{0&7tEGynhq literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ConcreteComboBuilderB.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ConcreteComboBuilderB.class new file mode 100644 index 0000000000000000000000000000000000000000..2b4285b261aa82edc5c32e01ecddfb9eb191a580 GIT binary patch literal 1093 zcmb`FOHUI~6vzL!w4LdA5h*VPeBg^xm5GUoCisYL(7s$0Pe%KATgc78O)fN zwQv!aOkC!8#l#%Pt0t~-yl&uzftv!!huYWCV}YT}!kR!lA9zY&q^N!MytY+R;Y+7f zp-Q?KxK3rw2{r3hF&?e!s=$k)@@jSz_~i|4d#b9-{iMy;^DMTuoOz z6}DwQ@ZC^FDj#f>g4SGaNx&*`UqM&bpZ+a!9T94Ovn^Ia?a~RY)u0x->Y3)_PWL4* zZa6!R#4yfE%p*g$Z@m59c)e?2K_ZJ=0`lnHL1X{T;g|P^d%F_1xt9F>;o#`wCy6_( zV)yP!EONH|UvDi?_;+6S^#l?wKc>KwQ@BC^a^cab4kTb!Rn+ouB2(nIw=0fcwpSyv zue`+nt=&S-Hq#SdIc>U%Ir__z{x*<+VB=^UA!Sn(T+M!i_)JL*=V(keiv~t1mnRKK zV~mu*cxUkg>gL5(_A6rPp*rGSf<<$@Hbt9tDOQIvF@Tb&BiTzCCCXS|%H#lwQHR+} dnIy_oU&_<~N~#X4moh_?*}jzXbl(^*90NUE`N9AI literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BuilderPattern/Director.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/BuilderPattern/Director.class new file mode 100644 index 0000000000000000000000000000000000000000..289884b4375a654373c42f4c9124c805997eb045 GIT binary patch literal 1106 zcmb_cO>fgc5Pj=}ICh<;q_m|il&=CwT57&I6d{^Mk&q&&2ih#$cJ$bl3805NMPC~_%M48^AK`NO#1=HU~k z?a@rB8MuzO>x4q_;bd0siHM;#as0XnxhsQ^$}!x)k7O9Tl3}Y{nOHJ8CDJonK^(fg zAyoE-QJ{^UbKqDgqGF+dX&qGyYgng>2X9{feEnkZ{Mq2`mtWsr>9}HH1GbK<7Otu7 z*A?7Qa8to8EHK=kw3nlN7-m#Pw&(a=`%$|`r@@dZt5%FHv<@T5`?L_mv^>{LTtr~+ zgu<6C8FHsj70>=-nnB-Jn>?TV%Bf=#i@b#2-Bf|WbGzw6`@*YJUj@ zd^#eOxl4U9x?DcyQS3>2F;n!w00vEUhDI8ViZ!(o{N6~R2d{` literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/ChainofResponsibilityPattern/Complaint.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/ChainofResponsibilityPattern/Complaint.class new file mode 100644 index 0000000000000000000000000000000000000000..7719031721bc17d980115f0be8753b9b39da44c0 GIT binary patch literal 2191 zcmbW1*-{fx5QhJgOvpl51Vq_fQNyr|sO)N$Ae2~aiiJ1cOvo_|PG&F}uy`BqyzxS- zM60~;0emRS|I8Aom{=7qa&k`3>970m?wQ|ze*OY5gSiY+m`EcDLoIjJGO3n(8QjN% zB&L#>7D$#%$1KXSz|5K~92%bM6!$HoAS+hUIWRp>mK|fsEtOnn$u=t$W4Ux-yT?)* z>w)8fK+6Zy;yr=sCK0cFKN3WlNnyqvq{d6@eFx<2{u}RzWTv zZ$`R7*u)qRyO{1gU2&4%L zO3s;Snp2&;R%(y(6wNF$R)E3#R%p*@M2EN0Osu-Wh%alRQ9=v0vn z+jNS?W`1Apdi;zu4D#P`;|s?kageL3aGl?~6hDU=e^kU3N|gUkUHqpLI(@64`YxWk zd9o4neR}jC5c9sM_Qyf*S&UFRFPS;twcb$(RWd6*Rr zB0r``)x8#dH0(tnI;h$c&cvcm=nZa#!g*i4Nn{AzW~XXdYQ}0iuuRrU16D9i0y%cP pmc_i{wX9XLo;P5rc~p7n7_G-TGx34Ob+R@Zu+&5=)|lVV@xL(^-G%@F literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/CommandPattern/AddDishCommand.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/CommandPattern/AddDishCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..90891aaaa62378b787ca061363587a2fa719f314 GIT binary patch literal 1016 zcmbVLT~8B16g|_{E^Jq;diPSf2Xv%8J_EEAQ4 z2Y-M+ig0Hwp+1yU9`^2>d*`0H_nw(Q7w5kLY~iJkG9FIj4i=nQ^zjIfJv{O7RG_@0 zW1YSg=&iI!WnpUKSOgZ0U>_R}ue za8D=Q`f6LC)G&$!sx2MUrz|=mdnk|k?3rnqj_kLk)eaAxrL?OPfsf;l+M|J1^zQUv zq+l7VE4ZtaJKD9u-nu~1Qb%BOJmF0pbNPzd1U4qiAL(7dqi@v7Qf{@l;wIsLF`4a9 zQ@ieG|1EUACkHZshi3uq<3WJusCrlm@B+&M&9QR**E9q^+?HtHDzXPs4d*Jbeak!K z1~J8wkRFf~cs;hD8)V_TBmc_WG`5i?sflu~2}>FgX|;`IekWyqJU{`g8K&4yGy2T9 z$p1?1)fq%>?I#M~^G!b6dwIy`)CznAY{5$9+Zo+u#EHDC%4BZElIHX?m>tr;$uSVr gexS%-;TKBR{60s)SryK6+(FJ047mm7*jK>(C5uTNz5oCK literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/CommandPattern/ConfirmOrderCommand.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/CommandPattern/ConfirmOrderCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..59d8b2cb7d458e6eb53a77783c339c3d78618d2e GIT binary patch literal 780 zcmbVKO-sW-5PjR$rp8#cYW=);^8?I96j6FGS`XF_Q1rYeqpmbr*(AmOEI|}J_yhb= z;xra4N(E(MmNzr|-p*s*-d|n;Y+&BT0LBMVz=VxSR4q(dm=-8*t4Jj^fz8DR1*x0p z==xT<0mbS%x|2ylCUQL;hC1?^GLGH7@UE%bMDB%DT-;hZ7bti-Ac2vFis&c}FUg$A z%O+{(8IAQUUF>PkQua6nw$xN}2H31Y|m20wYZo(NP*+kU5nX z9nRF6+LxU(X;csQlZE6`#RAR2db`wB0qxwjzUa#+_<)9FLdPZ`)B71$HU;vAe1XPb z(%*&)EbvYhdB=bpc%NW#EHm0> zoa4K+yz&Tfm(?pA?JQg2H#Q%j{@#TlIE=U-!>BR`?-NG*T#XC^<>hWR_jxn78gMjP4U6RiV$o|OMISYF3p7OPMF;d_Gbxx zfDirvf0TG<*#|;QZGxHYkAw1!ap&Y z?a_gD^lx6t^zlHBWdIKw0hX{FU=wu@4+1>ImcZMog8f}R{sZaIDzZmX6_piu@sH2Q zm12%XAw4E5@N_D*YlIP4RfWi_@% literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/CommandPattern/OrderPadCommand.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/CommandPattern/OrderPadCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..b7170ad5c475d830372e6722223ea9a069c15aaf GIT binary patch literal 758 zcmb7CT}uK%6g{J>mTlUHS=tx9nL$fE6jAh$Rs@nlVbA04MMu`%*j=T5Ru2*M&=2TG zMR&G>5CYqWbNAkvbI!dp^ZxPr2H+5zS)@^#MhayOs~XlaSkGWXU@9P+)QAFsg9bT6 zEAqW=Us(=?s_Wg$D5Ai#YW`s0do@>vp>;mEcl}2q>rN_OJQhg#fujZXClhGu-ByfD zHXIf91okH6Mm^@%nZnfciSkr*DsWVpj6L4^cANcczC!}}hVtloIOtGtD?2V%78<@S z-L?#r&cBOB)Kj6r)!%+~8Yzd)9$UYTPI}Hy8jszQjy_Q?^At(G0f7uXkUfmpH(Akb zWpDgpVAF-ttrW&syL~y5CT3AIk-?OSX=F{zz!bRr^A7*ln82Jiv0UkOt!AfBc4Tbv z!%6d#O2W{#{AXzAII=m%1O#`LW6X0VIZtpbRbL>g;u#4INexDIhtsE+GRIhsg=b?y lEt%tK78zGqXr9-LUqV>ms{TqSa09{+SmHIX;WA?aE1%PA#w-8; literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/DecoratorPattern/CashierDecorator.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/DecoratorPattern/CashierDecorator.class new file mode 100644 index 0000000000000000000000000000000000000000..3f37d3a62f00d8248fd23558066349f5e13899d5 GIT binary patch literal 755 zcmbV~%SyvQ6o&svtJSn#YrRz$?rH_I5|j%pPBj2W#;wm`31l_7HtfmFpM;&ZOmXcgSiam1;#ycbtnya6&YPA z3I*0{+9_fm;87Rk~3g?RHL*BC5TL zb@<^(3i$MMB_k0TULlRQl;e!&g{~c4FSPZ`&73>m-bbhSm7sOwJC384nrvB zFo;YB3ptFTC~(-fwSUf%?=Ftw_%diX$Mq(;y*#;tYki~qc7f?7ejNk+S_J=`HCv14 zLl|ajv)X5E@o1NyAj&Hbu{MLt9%dZ5vk%WOABAn8CG))o&N^SCQyt06C5&z=DX*n-U0b;ygC2? literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/DecoratorPattern/VIPCashierDecorator.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/DecoratorPattern/VIPCashierDecorator.class new file mode 100644 index 0000000000000000000000000000000000000000..9053d447fc6edd533b6d07292f31ea09eda6039d GIT binary patch literal 1597 zcmbVM-%}e^7(F)uHl&-hgwmp|TBSge{#fxBQeqWCt2jWJ!J*T>Ey*=q-0a5erpjA! zYR7Tf%8Z?9txTCZZRMd#%P2v@z`K7(HpD0XgO1-#)(EZm&`IXz-tV4!zVm%K_x|~0 zWeq?#2K{J4SPT(A_8{7bBRJ~AF+Yw&@!@p|T_W^`A3nS(hPQlp+mCj<<3qO(?@H*A zaDt&BrWu-jlHo*nh$nN3Z5pXbO-XV~OBor}wt3c2;$}K+8gX5qnlHlD{n(U-~ST0*ro)1Y3ehV=!{imE5oi>jilMoJm8vzn12arK&!$q`R; zbu(vcx-ynf4TE|}*~V-&@!7DNsq{z!h5Tb?E}P(|HPOh{|ET!5$RZ#*;AL1j1 zv!%;(1_e+zPWM?*i4zZgD# ze!i#8N?v{1BHKe#md(@DQBzo^rD_??R7S~6Hd%_RX>v$&g=2e|LCOe_PKIm=KWjvB zT|JuEtdR~1W7bGp-9tpXb)$044gMv`*&B{L%S-m>pXXGaF7~#xXC@|j!tRZn$E);C zHPPb*c*#!WS{nD#>Lfh$0UDx5@?ei?=0OXM{z|k7^@QC=>wQ%e_M??ngvSebkvNzz zzsog3zk)01jYaeD#G*^^o;~o8B2~^1>S(^7R;`few759`atB>*55-@?%N1_AQ!Y1A zRZjPMV~eN@)i0qTBn=nfJGY3&Jp3camauF1Xh>c{;0FW+CPWuIw3@aiuE!M@ptt@IwN(_;Mm%jK@G#*6 U@H{~mlh7`~Cz1LN3VP7_H&>3;w*UYD literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/FacadePattern/BeerOpener.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/FacadePattern/BeerOpener.class new file mode 100644 index 0000000000000000000000000000000000000000..40af7df9adf364d0bcbe3097802a2fe5ddc7bb18 GIT binary patch literal 724 zcmbtSJ#Q015Pj=7Ir}(>aWLNyr%NcfGDRXJoG7BONF*co>${P&=DcU!ts|u)NFaff zB0)%iXpkt3+A}py+{Y1RN<=Lr(^E8L1SX z1hZyS#R4l;^1H4Hb+e^hpJLV29cc_j+FhkBlsPx|x=RfwYX4rz*(xOI9G zuxnvA@@P$^U8l#4+by{z9psR=aLvJW+z`0u1u~AyW72W|O`FVS=$BJ5MuWGz$@6!~ z-m9Z8y}{#y!Lt`h|ItzJ>9^O1$-z$Y^8NQG`^Wtq3pX9iqAYOtzpo-tNJn)8shjS4 zqeY$(sQjbsYNYhT(Te`it!>AK+Wcx^m(@$vVMi6Z8_YK~6OnB5N@xBO7O*-gDd1g~ z=0}CYQMpR#=F&nPbC~2W!$kf+8TPz$wl*V|yodfMVfqZ)lni9yuysZRoW(gt l{Dh~)i$gIW{}Gwu#3y9O0yd|>)Eo-GiR4d33Y^X0{7=tT$d3R3 literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/FacadePattern/CockOpener.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/FacadePattern/CockOpener.class new file mode 100644 index 0000000000000000000000000000000000000000..36d12289654d64b674d8bef0d53b5e8b333776de GIT binary patch literal 718 zcmbtSJx?1!5PfSK&OR=|F>!#957R*kuB0GB0wXFbAUSfszFV1f&U@C~8p$0=5h;-( zh-e~|CLJAuB7kM(2k<*=xBLUdoG}=rR7o?lZ|2RL+1b6gYW)GQh*=Y($fPiVr%7Z@ zJj0}cDFf36o->TTl}hSmhWOlki6N2qUBNJ3kV?F3)XE}w&&wV~G6mn^UWo@X!h>K! zZ^@7$Ul4A?*1oD#rR|DPR#cs9Edph)iEZhM)#l~^uXBgH;uht7=fg%_C=o1C>*&N_ z7X3!xh;9T!L6MD;cbCDRK-p_B{ufMwA ze{{}Ty-$a|FZ1asXc}Ab5?IIq{b;gHex29&I^0cT?COm8ztw zEX|iNixK)PM5Lb+BTw5VYZ9`_Gx8&EPQi}*=`peq8A!k)Yuym=2#*QTOOD*H?^b5b-JW%~heQXFh!iA> zC`}ZlfhsL25@cEV0r?&Hq*VNaD04OeMRFCTnb|k<=I!jx{P@-V4qzGcCdN@NVHz_< zR7~8*0|T=L9vXPWF#bX+saF~D3yTeg!pqPT3=@u2Vk-%nB6`J}K1Iq-=yJcoBbnjr zU_tN5n89&`m)JT~t+up15zCh9aIHn8>~*mxJ+Zc5yT%*b<(~M1)_JsB^OImRk*?V8 z2qmHw>LEKZnDsD;T(Kdu>t{z$pSSrQw@^gMz+($f@RVW8^?4juN3gGY9|NIxLa&<1 z6G}gw^p8*b?><~!bkoDf_wet6Y8H1N#A9I6bP|L=(mlUe7s z&sEFbZnlN18P@()Kay&9_;r8j*7svA0vcCM+_4J4^gVD)I zKFy%AFf1IjN>x&|Ru&tW#~AGt5oy743`0g@t8nDYPEysg<7CYPa=96OD;LdeNY5Qq#oCVRu3Y=q_1yoA|R# zB#oN*1N>3OZ&;w1?A3ZR^S&SC`3^I)zyJLB1>hB48YrWtW6MAWwIY_Wtz*YPE;hS5 z_6!taQ`cb`D8**Kgy(pn<3NYaV045CPKUx10Yj@T+{g}nuiKNhD@L;G4S5)fz_VN8 zTDqd~4afLnbu+-^oMgl3LJ4PRhi`l_i!l@CGn%-Y`C*_sx+h+HbgqwIUfy9IH zVuTA^G~VQZrfK{G{5xokC;kJ%Y>R-2C*x)2eKX&D^WMDqaoYI~U=C9@Mv>290=Kd# z*qFp^3wJEswQx^h^r_OyJQGMy&r}66i=j^fH_J-X^LDdF(F<7%IFc`io(!roQVBi} zX3Uz31(wR>w_OwJdPBKB#j37b(in=gTcQo+)57NJIbN2Y^yxRMv?66_rA3;ed2XJZ z1nf%KjyzgcN#F6SoY{ulkPfoQS-9`u0UipJygbkp9YmjFI z7XDGV6e+zv9MK=TmCe{tlm9JjvwERC=%_+>mHDP(B9cuW>BL{c0v69*n}BCsm>w1m zuF6$P*XL)dn8FAz4HJ2TQtWx+Y;8s^d%=F>$ybOkgY-4F2^mPkVe1SDxQ-i)c$qGW h=LTXx?hvVb`Usgz0h?3cf-KW7MRFG+W1LN4{0vYh$YuZl literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/FilterPattern/CustomerCriteria.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/FilterPattern/CustomerCriteria.class new file mode 100644 index 0000000000000000000000000000000000000000..6437ec14d453c1ea3af426ef5924226f91a7d1a2 GIT binary patch literal 650 zcmb7CO;5r=5Pb_PNG+l$ejL342Yb{6!oeDirhX(C4&Ih_gG>5hx?2)|mIq_v!5`p{ zGENbUA;HAU&b&91zBe=d_# z3Z0zkFjV?#6bqB3lHqcp-1TITIVOomW90-=Q|F^FMy9djCQ+2cZYZ>N+?mEt(&^EM zOI;N!(_<($TLT8}CILy*JQd69EE>x6P7Fh0>R#fDa3E5Z;~B}#gVGEa%MF~$i3;S& z)9uXAnF`6+9L+7csUlVh@?%F*nmJ~uDt+}Ecbdz!{vNh<&tUbFEcGRspotob>WBH( zZB$^{SV4*5eCb~QHx^xVdeBhBBj;u~mcHQ!bbn6&1Fbw4qgWWIpl-b{%SVs-uq)L1qH&Lf5!xp^-Y<~gNH?pAs literal 0 HcmV?d00001 diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Filter/NonVIPCustomerCriterira.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/FilterPattern/NonVIPCustomerCriterira.class similarity index 52% rename from out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Filter/NonVIPCustomerCriterira.class rename to DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/FilterPattern/NonVIPCustomerCriterira.class index 0e5142b66a542ea84440398b8c2551a04eb7e5a0..e8d232c7b5a57a337aca702305e4e0d6a85f99ff 100644 GIT binary patch delta 304 zcmX>ra9?1;45k2|$q$(%WnEIsGE-8WDgzQrN>YpR^xZOZfHagh@r)I-wFXF`lvaLj zZhoF~PGWJfzH@1DNq%l>5u9PI8O6xJl39|P%gA5>RxXT1`Q$Rjhm2+*!&I=y!VTkL z2xbUiWbh-#c@oTw4DN&#ZWd-<%FM_)c_&*GFAoDh122OJ10RDD1OH?N_7qWJ1{NS+ dkwKI}jX{h-gF&1@n?YjoO!h2B-pMQ+o&XTtU`zl2 delta 280 zcmcaFa8_W#3`U>H0gTcTIf=!^E~&+t>3RAAsYS*4dHQadIVGt@6E9dXS!#fksADQ| zE-fy}&rL0|){J6gV96{=&1GaT1F03nP&>Jf@gbwhvz*C8;eiULFR123`gc20jKQ2L8z+>?xwc3@kvtB7-P{8iN>v27@?* RHiN|EUiKtL-pL=>?Et6HSN#A0 delta 280 zcmX>guufpY3`UR1K8(^5If=!^E~&+t>3RAAsYS*4dHQadIVGt@6EB!CS!#fksADQ| zE-fy}&rL0|){J6gV96{=&1GaT1F03nP&>Jb@h+puWM4)pB@8)zm^nNQ!3+V63~nH0 zcw8jH%*f!3SIuTg=B3Px?34GiMe%Ym@H22Th%oRlC^7I(R%1^Q6=Yyx5Moed5N1#V Xifb^4GH5f1O`gx5#K=9FiNg*6q)<|8 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/IteratorPattern/DishIterator.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/IteratorPattern/DishIterator.class new file mode 100644 index 0000000000000000000000000000000000000000..f3726964c693e91ff7cb10b2f6c3166d99709fd0 GIT binary patch literal 2369 zcmbtUO>^5+6g^M2qu5ry+$K#M3Wlbs?X(qj+Z0F$ZJo3PoDVS58M;D=g`;3gMv^-< zKY#^40a(GJ8y10S%ajGfnjgh*o@6_+OQxQ%dD6YQ_nvdly?THD^T(e6ZsF4uCQwXb z9M|P>LmoHNSi&uNyrbgXB;LdFC{|KjA(hVPrMt(Tle!?80U`^&4WINEeP%eNd`Kx_z%tXQ_?uL`W^hAbB$K0s(W z|3DyKa;hXdQMPPztJT;w-Or5OIz5@PvuD&F7_KGljx+A>Tb{uE{Jdm~laCQHur!?l}T$jAS`(UT}IwNdvCZ_9klQO9!mhXP|2-`M+V z(`a_oP-~_ie!rf}A1_JY9vw|rAnlp{PH(*N+=c`d7KhHl!Nv*P7`k#~&;lt|D79SI zw8{Q7YXqxWH|(0ey?bEp$z}cSW#{otylSqS?e0`hqBaRvoR+(1-m~QHO+~lls-&*r zEY>wlA*10GPHQ-WSrzv*+{cF+Ht>;vKHQJo8-R+BHI%U_pgAo+>wKBrby{{+#g>L` z>}dD|^BS(;l7xoR&DzmHm_?fGVd3DkxOVYKDwJFaE>72h?D23P1*0M_s3f76sfbzWK1xd;ri zEV~xmI;!QZH=2GMZ}M860Fe=cBFD>HUXc@~Z#sCNq0M3QeU!elI7fSq*0+4d_yg|-mT%E_0rNa1w@ucOF|&oIB=Z!p7f5gr)t{lppCBIlh2KI} zBSGAm06nZb+d;p`m;{uW+q@Fw0`iolzot``F7}oF33C#r@Hz1w#=oEhFEFCuFQ|vV zVKkF`j+8j;fo3QID9R*Zb8Pi(WFrKM5dv%@N4OmF9eA6(6(-LIc)hkJ=6*oBFh|@c zNOuvBv=0F@r#=FNNbs3w)1r0~)5J{Ub+pD1)TYQ<0hBz{dFmuCaw8Y2J*W vE=6=B`3qw54)L#c@Q=tphc-w)6)Dpp&*X*wOdcB|nZ1T`5Cg2a-N)S^6nm(;S%lvJn604U!RD4JN3 LUj*e({FMU$otPV_ delta 65 zcmaFC^o(i3VROgSlv4eY{Jiw6O#PJ9;>`5Cg2a-N)S^6n=bXgiVi&NGzEf#&W?pJ> QvA!ozDzPNLXyTt70A&RlsQ>@~ diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/IteratorPattern/OrderIterator.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/IteratorPattern/OrderIterator.class new file mode 100644 index 0000000000000000000000000000000000000000..0a66d26ef665c9e13f4e0287800f908b2ff162b6 GIT binary patch literal 2406 zcmb_dO>^5+6g^LNqS#hG>NaUwQ%IX8IBtnT2r1w+ZR#{_!1-XzbcU`_VxcP7l9A*N zX32sL{{UFQq8k>0Y0H!a!D!i5GlIbM9KGOHtFBY17{0IXcxBUz)-}uWOv?z&Jabh1KwzwRU_3VT zdSF-dqU{I#kSH;c5!5|XV7=$_%84QKt4ujmbA3CoT}MD{3Jk8;jvcHDY-dlL?}$QA zY5BPa0`Y=dX4#`f+cCH6)jiYu#MrCQk}kUYM&*Iw+49^p#)C(;FL1wq5$on-yKLTR z>^61Xq`F4ndaZM)ZOcfa6WuV4S_|r%|B>mbnjqCt9~u6(`4!t9%g#L%7%m0I{uf(D zt*M7~n`bj1z)IHC1h>`NmV7J}(cy?2kAZ!7RUhOst+&l$VJDi~B z7#|LC#c(WrXYat=mt*|habtfD(-67z&#E3!CSL%(%Y`$Lk%CHNX6ZHFy($ewddBIvWhJY+t|^ti)jsS zVphWpW(79-0=!C|EBF(*42^U@S-kbW{Wb46hnh0QI9&qc9Jk{G z&{bNg;Rj}w0ThP;k+<#YyPoX?rNA?dD#z$-2-a=pO{z(!3g5HwYzGXZY{v>;BGvZq zR%<~6m-%*&g2;$Lkqzcwfg*cM+jzL2;F;~_eu%aUxX5#cr*HWi;(qci1N=+<4+Ke{lafiRfD15`4BzI zJK03PN}mBJ6Sw&+$O+^sQ-4XLOug8Z`X^*0Ozu568Ih$drC>l^N(bF7}mr? zyO?$fBcakWRBV>y<~rb)JK*C`rX~F>JtF!J;}mAO8uD$+I-2(Qe+Xt}(OAxtu&i_8U$k#8hyVZp literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/MediatorPattern/InterPhoneChannel.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/MediatorPattern/InterPhoneChannel.class new file mode 100644 index 0000000000000000000000000000000000000000..2e914bf034c9c0a3ce22fdc8375db3316be9e9c6 GIT binary patch literal 3459 zcmb_fTT>Hf7=9K)HVI1v1eAJ0t%yNPk4gz@0|rIIp^##st#(NkSWI?fvY}$n_S{ad zdeg&Aui#c_#ad_DUbRjyI@6gB)86-2I8N#F?Is`yjzWi-&HKIIdwkx*F2DWz!;b)t z;8P#!(BZ>LobsX?oia}Q;6jHuoGHcAh|1{lpxXxzdc?W66o>Jgc=XBW_rZ^t(0<;7 z0WZ$t1s?`6B(z_Y@sf|fFMDuKFwcAO3RIym>_r?2L1}_FB95bi8k3<*aAz&m%4H>N zj*hDnYA~r9qro=QOlqnTlCa4%lDeTqQt6~QscDoecjR)Go(x9ytVJPjzdmZvN=B1# zX2o@DV^mAzf|hBFj_bjMmZfM~wJa@T1l!G2$~4-OYBn1zcvvJt$7tE38;sA0({OZc zJ14XWJ)yNt_U7$&X$f7m%uM0jY0zEom}zM3W2#|jNm_Qd>V|F|W8MubA`TrGkl<=J z6Lh*M%H+FqsbMV>Q-_n}R7TCXnjBCwx;W>V5-*z9j_>|?N~pdI`pBiYmbP?LfbX)# zbRzE7!kLUZDWPV$@5yw*e_6k!#xHcKX*(Vn<1#Kt=w6xGMrt8IDIL|U&c%Y9TWLOY zU~LH2Q=%_dI@nPB|8Hz=!?g4f)`UT>v%l{udcT#?jnUA9S?aOIv`nxqW2%X`nzdqV z10uiL@Vc{_kV;3!76* zrLD<2Rg8+TdQm|JSp^o-3UZi`aCm)%Qt&D+DVVffXEm!X?kthI5mire=gGLN;5EE1 z;|&FG;w=UH(IDaUn%*9I7DPG$34W*N3VwyNi!$C;@D9QXuHao6?7q;u6vVWNx=5MkjZsSfUatmK5_Z26ohhn#^fEBP?vg(CXbM z>sc;!i!;J@7~+=8kF#C4eD8@i@#u@5Y8vvU?BW+9;3kyE)NHqQi4nRC`=_cPXU~D@p=+?lh$+L)t8zfVu?*w>$*iTNn7o-|*!dN&o55a=y2bQ0HN}9P zUSG~;x@jSlG**C?Pg8)_yk>XZ{jynQRY*|6(dhX|S8uduFcKmBTGnp(kJ2Q2E*_%r>?@v^LK^2!zUws=ldePJ$*5vn`f{#gn~P# znqOr=F^a_gAyp)n4J7Qd>3Vp@M3Z*$hLgx=BOoOJ;t1wDIT|R5Y!VkLQj&b zFcODTPwFYsJKQ`nIEyZ1GkLB`){MDO@_yl$MpztZN@VWni!@pVW)Z)RlmZ2 z6V-#nwdPw?k#Ut5PLh6#fd<^DM+Jis0XqRy+aUoZ{WWe-?t+HHD_ttZZFw#qs=) zt!<|+x}%TX02am1TGp_R+X&PiLetIyb@N}77%MSETvQ@+1xN82j^lGYi!az$UsLKE zL@@~Hv}h`PHV^@GF*kOUzln=C>^@#C$~aUHU>q}wIpZ}LGC z4M7v*vp>psrdwFTqwq3!?wvd5+&OdapT9qT0eFHr2M(re+;L!FsvF(7o5wwr^isA_ z(RSL#jE(yO`8~NO!z8MyW+G6m?fM74*Gg2w(~)_B?oCw>{iGF3fj8%l7iuzSc}W!3 zca;~&CNuZ_B$09Gt;hov$Y+NenZFT7Nt7J!%ag!*9LRXN5ruMokuiZ8 zOBaCc0L_=*2{_T|s|8js2bW^KZ}@cqL4uyTOgfyp_-gsGXu4Dw$dBZy3fSb?RG;`E z{4e^>X4Hyzd>Sl7$i=se(r?Hme*gw?Wx4L_`V>)X3>heJ~6Jf%G~CObx8u+*N8Gr8%Xo0LkQ@*~b;vD>UB zRm22`)Zy?7PAoN{?V)F&0E>GH$n`2Ci!iwZij^aX%1;^)=1zEVtJxNG8G7JayH;(>{I6AJ$z%C zU@re}SgS!*26i~kPrejL7X2!*21>3cU$p8QGFW#uYP1ZM{EAb1=>)D`$Ht_3?KTBg zdUGwwZMQ0)?v&$mlmlP+YNsI&3?X%~=6g~f#nqrku)~=T0L&eQr}K zU5lvJLkF~-)n5L?c(fX4NL7x?oXAhI(79$O_i(9yxUns7lZZSxo3K^_GnnD!+Yzg zu&34ory_Bg?~4V2V|;N8tq14F`4|}(Uy?3%3O8vnY_0^qslq2DcR4XacC8pN9WrTk z84%+~+K$u4PU9GX7*PyCQXjfNX8r;qkjG@4L788DfOKJsx@)~70rX!8_?MBwT!+5t z-}yVJ^Df8);~OgfS*mDO^0EI9Kqfe^J$0EyNEqHE~486kcH_r5QE literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/ProxyPattern/ProxyMenuSource.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/ProxyPattern/ProxyMenuSource.class new file mode 100644 index 0000000000000000000000000000000000000000..d0d6ece84655b8864d9ba132a1ecd417773f7834 GIT binary patch literal 877 zcmb_aOH0E*5dJoaMq}(tTi@?XtzeEG6cMfUQXg0mJb2i)OWj%%NmCy`OHd06UIl-Y zIGYBGdMmOpJF_$U&9~pq$LGr%fHf>x7{KHpOiU>=ZDPiPfmvndOw5~DFtNxG^9670 z3%6DBT7E?^6pEtSastn-)umGvO<8lVc@PNSb@JjyR>k)HQ4}Bf-raX_`~zp5p}!d+ zriyib!<`0qYfdTfrCU?k4e82YlOdh`n_fO;Fm}8u(TNwOD-K#$W#OOja)VA%MX$me zr`(q+jt-6BLN*!pdL$pdq^kn)GnyCPErXs_T!u>luUzi)>!_R65vw2-pV42JSJi86 z#E`LJW7vj;A%^^asH#xoHqyv2?Dhuui!4K;`#Fc@x~K#UTfISd^}_;<+yEE`q0u4% zXeKqKM!3_|Ax_x@MTM{euySp%+{zQQhp;9|HU^z+oF+CwNJ*q9%1}L3V+5nLD^H;^ zTBJ&Zc}_PNEuK#_jVYCALTw{Wz3^%Z6PU8>klmrmoA??U ztw}F@03XWu?=C42h!@6-{dfP$s63S0;`n z+)jZZV_?O=s)0KUldkGGRl$%dpYT(jx42!;SF|JTdV#!K(w2IgA-y*0UO!@p6jhCq zlVxd(x1H9pa1Qyg<-@5ew~n|YJ-ug)=!SF|N@Y>&)5IL646K=0N0woFM=9-Uhqw2HZm61@oJ1~)4HI{YxMro!>t`5mn9b^52mA-5ElybX_f4)F{;<>~t_nsqzOjW=+Euyj6(f0Uk0;RJ@il z%(r+`6qQ}&`n}W*`f@e5HBE1I+$xN22Q}R%gti zh$aXtcMfALP>w3x7@(K9pqJ>;3ln{>v@7%rgx{CPc#bDnz#{2Wq2nHQY*Y`H2D3E z#n7$^UGTq#w#w`4PdmbQmKl;w9_S3^;?bCzZJM^FwRG22wT>%nlRF1W*}Fxu9=aLs z42#1sN`2MWAM5S#wsOtxICcKe@aJ);`S~@yt1Cz&BVks-97+-{E4YGrhQhBmyL%ts z_FsM8+xpOd+1r2qVt?~ff9LhjZ|?$Af~w#ut}!eOH^?g2yWF3mg6p`UU;-HiZ8)$) z7aJZWd;z~JhFeGWGVnDSB;v%9VG;w0pcRHOZ_;W@x0-5g!xh}5fZY)c6IDNA*y^HV zSi~cT>n4$E{6B7jZF@;Ai_R5;g8`%;pa zj*+F(&S;O%ZG(OB!^cP_d}j(-(v=_qtZ%%}rsN{taHWe1I5MBWxVUB-NXu7*)%s LNk2h)1SkIh1^Gxo literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StatePattern/CustomerState.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StatePattern/CustomerState.class new file mode 100644 index 0000000000000000000000000000000000000000..9a2f5c2fe4c3bad1f57c3f82a42d6a8d49806d1b GIT binary patch literal 453 zcmb_Yu};G<6g;Q9*d6F%|O+tCcjaEe|c}}e?)Uz;#8pW?^D|5PfdD!u_5rzg5cdgMi zHBMYHObap&Gpv?>XU4j&wTdgzwtR^A1*?9GaIL#0qg&}FA3QGltQ1=j!NY_h{)e#{ z=6xcsgev%bT2f}bV~p&H`!|9;DJHi1mT}ve?UU0tuvhmT*y=km!qnpE$ACSAfXA?J L62rY_11p?smv5UyBF&XB6=CV%A` zYusMd*4pGrSFMKDu4}gL*?nhNtm_WLVwE>tRajVr3sEL$I3=`g*)wX7~)Y`TqxIqES6%12VKcZXeimjV8 z2%BpLv1#%@Zi4N2No|wP<%5F(q#$=IAdhp(!WTnWIF!@_S_aH6)RBWiU#GXmz&x^$ zoFGf3ozWhdKLFeJ!{)<_#3e|2Z(neQ^L519)gFSMTBGq<383jH8+D<`X6}JvH@bh8e!u+rm5Zx#i&{~ LN%{rS$8hl)5cd>0k@n7M@yo z#!&qrl{6n2mRfK73}sJ`1Vh7@N_;3-f?0?L<`rcVOaO`jMQ#7 zmWnnI3m(xrnt!1gtfQV;0ejl J115nIn)iFz)sO%H literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StatePattern/OrderState.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StatePattern/OrderState.class new file mode 100644 index 0000000000000000000000000000000000000000..7d2c9a9715b61d4efc217ccbe9f600c3dfa2abcc GIT binary patch literal 1148 zcmbVLOHUI~6#i~s)0UydQYt7us(^(m<11=Xql6OUqAE!V#^uo7)Qg>&X6BZJow_v9 zoe2vzy3v)dMTwg51N2Q!f&xSAwlIaf!w@dat};Z*R-H4XE5hUt z+r}EVSM;?eA(@I*)0?ZhE!;Q&Bl4+m7#1tM-qxgLHr9n!=ZU|h2idCBYdn2e`+eO;+l#vq!|_l<2t+) zLwPWY{TB%y^2U)YeV>s*Au+57gGNoVTw)k;r>r$~v!PWt9mx&au-cMgtm5qmOIx;u zNu#j2ZjhQr{{s_k%S~#UR9El|eM(7i!xxWppu+ooRM=P6{|tdxk%vnEr@KO6u2jg5 zP^8h9(KkA`1NPP1K1Md?feB>DSN#NxB1;jS8#%IWu|$OEfSF7%qDbQL)U zfPy+j8fc*5SvV3%{sH_C$Kp>Q=6sGNB;vwb%+7o>`_1g^-2M9VqYdB&mf{%4i8xN; zROHSQL9}8xjWbbX<2Z|R8qUWN^+RU8xH%0MG~^f}x1=T2GD9#ozs?XU+Eu}jEJ;f| zZkijyS>qdZLQ*BW!t3kYk)GWLL+Y7y8Sa)uwP`5Zs%=W6DqLB!8eA#iSjLLjl2vhU zd$n(u6<6ZGc*3RX0R@I=P53%PA$K@m(Kb!nD%QE{8pWooY*RP`rQqElTIs_KH%H}R z7^k`_&mZwd|EBS>-E=DAf%JNj7!fEXso literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StrategyPattern/AddDishStrategy.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StrategyPattern/AddDishStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..2cd1771e7c68b17b2575fc1f3214a5ecaac1e77e GIT binary patch literal 971 zcmb_bT~8BH5Ixhc#kEMSD2iaD0X(oHm%ysXUDZG^*N7&HbV zj-8h7$;dG>^*ITV$Ap%#_3Hg8JSC5d5q9U~PWvO|LsOQpHz)U2s|33pCXp*YE3=X1 zJG0yAi!)I~0hWc=MXX_+@a3TvLns+}XCMOKX?6S3)r8i6tEaO+kuDEI1^#6Fgts#l z|5^BSDEwZ;=m`{){{=6GKS_o?&yVc_M-F>ppWpfk`ko#?Vp~X)1=x&> zqYHS<2#go;gsmYTvRIbARoni7Oznzc28M342ctYABe5~MHkM!lmQYG%Ej&dz?de&{ GUj75EuNS@m literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StrategyPattern/DropDishStrategy.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StrategyPattern/DropDishStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..3448f82b8ededa78fc4d339001ced0e9d1db8305 GIT binary patch literal 1725 zcmb_c+foxj5Iqw@7DBifK)iuLxg>xr;N2i9K}yOXl%cRnpN8ErSx9D5yA#TkAEJJN zuj&I<@!$veQI@?)kYIupEgyDfx~Kc}*}ly8ABW!n+{S7cowyjrB@Bl#g3FzVVKhot z<6%r-vIB7g2?J9GrWrzuj&$@ALt8wt%@9l}TQKyd9Vwob3OmBx;yZcLMAORR`EBkx zzFboVbA)#fC@7iAbI&t3bWXUY50h-s!L`X@!(Wq$zjvWD*%XXnzD3_- zehlr(56iI7qHi5lhVG2!*4{cV)(Q~LsFG`mRmU&U;P1(t-R1i{f-Xc1%tUYvvj)rv z<}hzyA%g3;!O*v?l=i49#dV=`%JzCgxY>bQ5o)A62JS|14^)&M|A%8z>DX&kk~YKI ze=9k0@OhefF0)c!8{eQc`Gq=W`*{fYHfvKAf8Ac zvm{i)rnJnp26|jWhOjFNYG3%kRI+#@YU1UIjAY8576qD5RieBMR_z^SZW0AeL3=mR4@r0HryUR%)+QWQeRuDcs6<3!?hI zo@x!F+OJQzwDZCnt2!nd>DOsaIBu1TqKWydI{Ruf(hJeRKgIL;jH5-;z+;B-hWlpR z7)JhVhf#FU%S|mpZ*_on8eCetNiu0?w6{-v1^ZmN?x8hQQ5xu_vu{cU=))P>sTt5u ztMB}lz}je^oS8mA-~eqOF!%*QUpOQO93b=&U8IQ`be#D_rfu-yqX^O(CLUcFCe1hn z@?%7ItOq8k1ALU50Jt`(q19CgS@WNH}(^W CUG$Rx literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderConfirmStrategy.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderConfirmStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..45d7cf9bfe8cc5a3faecee736425738cb7ace049 GIT binary patch literal 2106 zcmbtV&2k$>5dOxJy|S{glQ^=L+E~W25yfF=wtM>L>z?kO-~N2{3xK=WO2fvLG~UH~ z78cS-V9_i~lemgZ8q2tLj&j*F9NaKcH!a+0Vj_0^4@@jrdYOO-wDX2Zq zRjZxNK3&nF)T;KHE{CoP^MU`37dGRwoPecXsA^l&@3)!bjpu`AGw|~b8AVQ6*H!2g zyr`ZVQNeh2y8d&^|6PTt^0aCS+#FH&03TId;uIJU36LxAr9V|Na?Lk zOKk-O#XfCv{<;>5rl>as77jx2{JmgTIlV}FSl48gZQZf(jPtx01iS5)fW7Yf9Ia+J zDhBY~px?fYUjICnzS~gILQgSwG|mCeAw>gsi1^n7^1UYEd_96cFB^@DrxhE#BCvSm zd>A%?xs&B^1*iBFa+dME8{^K=#Ptj*hr8fDe(h(7AG^nAxlVMMDVPV+C{h43IM1C| zg*Uhw<(D)z&ON)bkFj5o*tournoHn-tW-E1=1JsCX%GHeH`X*mOO(ki?{GLv81qsOL&LY n=g6JJ*dIt)NL(i4G8to-N11z?N+o=O4H|f#bc*x}zw3VkmOpOy literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderCreateStrategy.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderCreateStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..0610eb83d443c28240cbc4aae0b640dbce58a058 GIT binary patch literal 910 zcmbVKO-~y^41LZA8x|(j1SBG*z4(ni^ZY!vAD`|X0PNtqk1|#~eDzVtaMi<_hi`<5T@xF(M<{Mo z&j_V@5;9@7VPZb&_gZXEb*n3pg+>zS?wPhG^9R9_YnzmC)ZnnMToOkeqe4zi6kllP z*v9IBFHOk%SHB1TiL=^q^yW8h$hK}-g0ELKg2#V2=sS`9yD>UtZLxQ-UN|-n<3f>+=m!)4 literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderRecordingStrategy.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderRecordingStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..4b4a5a4c604c9227651e97df6c7211f8eea2e74e GIT binary patch literal 354 zcmb7=F^EuJes|twgoD9E52;H?SeZq5-S7-L`q7^63D`WLKco|q9Mw#46Lj1PEjCV%y r-(mTv^aP*#Yb~Kyi$yN27V#$IB(w>HM)gI2nuH%T>j|wY8))AE>4$W< literal 0 HcmV?d00001 diff --git a/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/Main$Debug$Eyisheng.class b/DesignPatternProject/out/production/DesignPattern/edu/tongji/designpattern/Main$Debug$Eyisheng.class new file mode 100644 index 0000000000000000000000000000000000000000..2095644abf095ce291a22e3b09f2c37aa6a3065b GIT binary patch literal 595 zcma)3O-sW-5Ph4bO&g<))z3Q%p2akdCPu$zP$rD#!dwVG;Ekyv#@SqgQ29SGHD)J*kmZ42|o=OoGYb7 z+z)w@h=gH(ASS7&BNfb~HxY>p)C1RA#LBzoQZ?sWCnR+$mDD|kRx8&=d&FS&qlsXs z4x|#p^xhZo9rr_;)CSR*ha(=#4F3$x%q&Cs{7EKLp~z}C&!y%spG?}fQ5uiMh0Kmr zGXLEff8-=O6p6l!5^Z72K@k-PHntfKb3Fd<0E3&Uc_CMUcjM2*STpS9P+-{km&H(M zwMW>c|1;?;nd@d2vyQ^X0%eC#4+aHbcMe{_IbBvbs8G}AU1_U8-NrxQ^t_Fb4nLvbln!9v>K z(S$#7nye>ud=={0!lr`)YzIYbG3?D9Zl=rNrXpUzmG9jSCSn*f9R8!Q{`;M^xpan1 zquIv}t;(dWG1pC7Oe3-)9P$f<+AzofyLIpi)_Q~SLdd`(`5bXT%o6$Pj0G1w8ObRYAY+OxYQihbNX{RRsj(_0F#DyQ= zM;Y%RMiULO$=q}9oqNvQ&b+<9yaG7ERsm_$Ev#Btv#`#PJr`c$GnB5B5>Y$gaV%nn z+^JMjpE0DH`+bH?I~)pzvMZJ7CKFFYH{1)TQgOop5BfZkCZ82EdL+qX#}&iG(V_Ck z(iw_a`s$8rEh6P~xKu5&oe(nAo44+m-*YG6%6ED?lFDyQkL8h1M%6#I84A5Hi3Z|Q znmKIacx+4bEvFh?wd8X>4|cnVoEs}b7-`vA#KfKdPd literal 0 HcmV?d00001 diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/ConfirmOrderCommand.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/ConfirmOrderCommand.java deleted file mode 100644 index 5df28a5..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/ConfirmOrderCommand.java +++ /dev/null @@ -1,14 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Business.Command; - -import edu.tongji.designpattern.ClassDesign.Person.Waiter; - -public class ConfirmOrderCommand extends OrderPadCommand{ - public ConfirmOrderCommand(Waiter rec){ - super(rec); - - } - @Override - public void execute() { - this.receiver.confirmOrderForCustomer(); - } -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/CreateOrderCommand.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/CreateOrderCommand.java deleted file mode 100644 index bd6796a..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/CreateOrderCommand.java +++ /dev/null @@ -1,15 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Business.Command; - -import edu.tongji.designpattern.ClassDesign.Business.OrderRecording.OrderCreateStrategy; -import edu.tongji.designpattern.ClassDesign.Order.Order; -import edu.tongji.designpattern.ClassDesign.Person.Waiter; - -public class CreateOrderCommand extends OrderPadCommand{ - public CreateOrderCommand(Waiter rec){ - super(rec); - } - @Override - public void execute() { - this.receiver.createOrderForCustomer(); - } -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/DropDishCommand.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/DropDishCommand.java deleted file mode 100644 index 19b1987..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/DropDishCommand.java +++ /dev/null @@ -1,15 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Business.Command; - -import edu.tongji.designpattern.ClassDesign.Person.Waiter; -import edu.tongji.designpattern.ClassDesign.Tools.Dish; - -public class DropDishCommand extends OrderPadCommand{ - public DropDishCommand(Waiter rec, Dish dish){ - super(rec); - this.dish = dish; - } - @Override - public void execute() { - this.receiver.dropDishForCustomer(this.dish); - } -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/AddDishStrategy.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/AddDishStrategy.java deleted file mode 100644 index 5d19962..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/AddDishStrategy.java +++ /dev/null @@ -1,12 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Business.OrderRecording; - -import edu.tongji.designpattern.ClassDesign.Order.Order; -import edu.tongji.designpattern.ClassDesign.Tools.Dish; - -public class AddDishStrategy implements OrderRecordingStrategy{ - @Override - public Order execute(Dish dish, Order order) { - order.addDish(dish); - return order; - } -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderConfirmStrategy.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderConfirmStrategy.java deleted file mode 100644 index 01d771a..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderConfirmStrategy.java +++ /dev/null @@ -1,17 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Business.OrderRecording; - -import edu.tongji.designpattern.ClassDesign.Order.Order; -import edu.tongji.designpattern.ClassDesign.Tools.Dish; - -public class OrderConfirmStrategy implements OrderRecordingStrategy{ - @Override - public Order execute(Dish dish, Order order) { - var iter = order.createIterator(); - while (iter.hasNext()){ - var item = iter.getNext(); - System.out.println("confirm dish "+item.getDishID()); - } - order.setTypeToDetermined(); - return order; - } -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderCreateStrategy.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderCreateStrategy.java deleted file mode 100644 index e4fe528..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderCreateStrategy.java +++ /dev/null @@ -1,11 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Business.OrderRecording; - -import edu.tongji.designpattern.ClassDesign.Order.Order; -import edu.tongji.designpattern.ClassDesign.Tools.Dish; - -public class OrderCreateStrategy implements OrderRecordingStrategy{ - @Override - public Order execute(Dish dish, Order order) { - return new Order(); - } -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderRecordingStrategy.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderRecordingStrategy.java deleted file mode 100644 index 86578b6..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/OrderRecordingStrategy.java +++ /dev/null @@ -1,8 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Business.OrderRecording; - -import edu.tongji.designpattern.ClassDesign.Order.Order; -import edu.tongji.designpattern.ClassDesign.Tools.Dish; - -public interface OrderRecordingStrategy { - Order execute(Dish dish, Order order); -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/Order.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/Order.java deleted file mode 100644 index 86f37a0..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/Order.java +++ /dev/null @@ -1,65 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Order; - -import edu.tongji.designpattern.ClassDesign.Business.Iterator.DishIterator; -import edu.tongji.designpattern.ClassDesign.Business.Iterator.MyIterator; -import edu.tongji.designpattern.ClassDesign.Tools.Dish; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class Order extends AbstractAggregate { - private String orderID; - private Date date; - private OrderType type = OrderType.UNDETERMINED; - private List dishes = new ArrayList<>(); - - - - public String getOrderID() { - return orderID; - } - - public Date getDate(){ - return date; - } - - public OrderType getType(){ - return type; - } - - /* - convert @undetermined-order into @order - */ - public void setTypeToDetermined(){ - this.type = OrderType.DETERMINED; - } - - - /* - add new dish to the dish array - */ - public void addDish(Dish dsh){ - dishes.add(dsh); - } - - /* - remove dish by dishID - */ - public boolean removeDish(String dishID){ - for (var dsh:dishes){ - if (dishID == dsh.getDishID()){ - return dishes.remove(dsh); - } - } - return false; - } - - public List getDishes(){return this.dishes;} - - - @Override - public MyIterator createIterator() { - return new DishIterator(this,dishes); - } -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/OrderAggregate.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/OrderAggregate.java deleted file mode 100644 index d274beb..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/OrderAggregate.java +++ /dev/null @@ -1,12 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Order; - -import edu.tongji.designpattern.ClassDesign.Business.Iterator.MyIterator; -import edu.tongji.designpattern.ClassDesign.Business.Iterator.OrderIterator; - -public class OrderAggregate extends AbstractAggregate { - - @Override - public MyIterator createIterator() { - return new OrderIterator(this, lst); - } -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cashier.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cashier.java deleted file mode 100644 index c929f0a..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cashier.java +++ /dev/null @@ -1,39 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Person; - -public class Cashier extends Employee { - - public Cashier(String employeeID) { - super(employeeID); - } - - @Override - public void changeTmp() { - - } - - @Override - public void update() { - - } - - @Override - public void settleComplaint() { - - } - - @Override - public void getMessage(String msg) { - - } - - @Override - public void sendMessage() { - - } - - @Override - public void notifyChannel(BroadcastType broadcastType, String operation) { - - } - -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cook.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cook.java deleted file mode 100644 index d8ccabf..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Cook.java +++ /dev/null @@ -1,46 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Person; - -public class Cook extends Employee { - - public Cook(String employeeID) { - super(employeeID); - } - - @Override - public void changeTmp() { - - } - - @Override - public void update() { - - } - - @Override - public void settleComplaint() { - - } - - @Override - public void getMessage(String msg) { - - } - - @Override - public void sendMessage() { - - } - - @Override - protected void notifyChannel(BroadcastType broadcastType, String operation) { - try{ - if (broadcastType == BroadcastType.ALL_EMPLOYEE){ - - } - }catch (NullPointerException e){ - System.out.println(e.getMessage()); - } - } - - -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Customer.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Customer.java deleted file mode 100644 index cf49f84..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Customer.java +++ /dev/null @@ -1,72 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Person; - -import edu.tongji.designpattern.ClassDesign.Business.Command.*; -import edu.tongji.designpattern.ClassDesign.Order.Order; -import edu.tongji.designpattern.ClassDesign.Tools.Dish; - -enum VIPType{ - VIP,NONVIP -} - -public class Customer { - private String customerName; - private Gender customerGender; - private int customerAge = 0; - private VIPType viptype = VIPType.NONVIP; - - private OrderPadCommand myCommand; - private Waiter servedWaiter; - - public Customer(String name){ - this.customerName = name; - } - - public void served(Waiter wt){ - this.servedWaiter = wt; - } - - public void serviceEnd(){ - this.servedWaiter.clearOrder(); - this.servedWaiter = null; - } - - private void setMyCommand(OrderPadCommand cmd){ - if (this.servedWaiter != null) - myCommand = cmd; - else - System.out.println("ERROR: no serving waiter!"); - } - - - public void setVIPType(){this.viptype = VIPType.VIP;} - public boolean isVIP(){return this.viptype == VIPType.VIP;} - - private void executeCommand(){ - this.myCommand.execute(); - } - - public void addDishDemand(Dish dish){ - AddDishCommand cmd = new AddDishCommand(this.servedWaiter,dish); - this.setMyCommand(cmd); - this.myCommand.execute(); - } - - public void dropDishDemand(Dish dish){ - DropDishCommand cmd = new DropDishCommand(this.servedWaiter,dish); - this.setMyCommand(cmd); - this.myCommand.execute(); - } - - public void createOrderDemand(Dish dish){ - CreateOrderCommand cmd = new CreateOrderCommand(this.servedWaiter); - this.setMyCommand(cmd); - this.myCommand.execute(); - } - - public void confirmOrderDemand(Dish dish){ - ConfirmOrderCommand cmd = new ConfirmOrderCommand(this.servedWaiter); - this.setMyCommand(cmd); - this.myCommand.execute(); - } - -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Employee.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Employee.java deleted file mode 100644 index 7f17463..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Employee.java +++ /dev/null @@ -1,44 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Person; - -import edu.tongji.designpattern.ClassDesign.Order.OrderAggregate; -import edu.tongji.designpattern.ClassDesign.Tools.InterPhoneChannel; - -enum Gender{ - MALE, FEMALE -} - - - -public abstract class Employee { -// private AirConditionerAPI airConditionerAPI; - protected OrderAggregate order; - protected String employeeName; - protected Gender employeeGender; - protected Integer employeeAge; - protected String employeeID; - protected EmployeeTitle employeeTitle; - public InterPhoneChannel myInterphoneChannel; - - - public Employee(String employeeID){ - this.employeeID = employeeID; - } - - public abstract void changeTmp(); - public abstract void update(); - public abstract void settleComplaint(); - - //// process the massage received - public void getMessage(String msg){ - System.out.println(this.employeeID+" receive message "+msg); - } - - public abstract void sendMessage(); - - public Boolean setChannel(InterPhoneChannel channel){this.myInterphoneChannel = channel; return true;} - protected abstract void notifyChannel(BroadcastType broadcastType, String operation); - public EmployeeTitle getTitle(){return this.employeeTitle;} - public String getEmployeeID(){return this.employeeID;} -} - - diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Manager.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Manager.java deleted file mode 100644 index d6d7c12..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Manager.java +++ /dev/null @@ -1,47 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Person; - -public class Manager extends Employee { - public Manager(String employeeID) { - super(employeeID); - } - - @Override - public void changeTmp() { - - } - - @Override - public void update() { - - } - - @Override - public void settleComplaint() { - - } - - @Override - public void getMessage(String msg) { - - } - - @Override - public void sendMessage() { - - } - - public boolean notifyWaitersToService(){ - if (this.myInterphoneChannel == null) - return false; - return this.myInterphoneChannel.notify(this, - "new service", - BroadcastType.ALL_EMPLOYEE); - } - - @Override - protected void notifyChannel(BroadcastType broadcastType, String operation) { - - } - - -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Waiter.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Waiter.java deleted file mode 100644 index 1807523..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Waiter.java +++ /dev/null @@ -1,84 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Person; - -import edu.tongji.designpattern.ClassDesign.Business.OrderRecording.AddDishStrategy; -import edu.tongji.designpattern.ClassDesign.Business.OrderRecording.OrderConfirmStrategy; -import edu.tongji.designpattern.ClassDesign.Business.OrderRecording.OrderCreateStrategy; -import edu.tongji.designpattern.ClassDesign.Business.OrderRecording.*; -import edu.tongji.designpattern.ClassDesign.Order.Order; -import edu.tongji.designpattern.ClassDesign.Tools.Dish; - -public class Waiter extends Employee { - - private OrderRecordingStrategy strategy = null; - private Order currentOrder = null; - - public Waiter(String employeeID){ - super(employeeID); - this.employeeTitle = EmployeeTitle.WAITER; - } - - @Override - public void changeTmp() { - - } - - @Override - public void update() { - - } - - @Override - public void settleComplaint() { - - } - - @Override - public void getMessage(String msg) { - System.out.println(this.employeeID+" receive "+msg); - } - - @Override - public void sendMessage() { - - } - - @Override - protected void notifyChannel(BroadcastType broadcastType, String operation) { - - } - - - public void clearOrder(){ - this.order = null; - } - - public void createOrderForCustomer(){ - OrderCreateStrategy strategy = new OrderCreateStrategy(); - this.setStrategy(strategy); - this.currentOrder = this.strategy.execute(null,null); - } - - public void confirmOrderForCustomer(){ - OrderConfirmStrategy strategy = new OrderConfirmStrategy(); - this.setStrategy(strategy); - this.currentOrder = this.strategy.execute(null,this.currentOrder); - } - - public void addDishForCustomer(Dish dish){ - AddDishStrategy strategy = new AddDishStrategy(); - this.setStrategy(strategy); - this.currentOrder = this.strategy.execute(dish,this.currentOrder); - } - - public void dropDishForCustomer(Dish dish){ - DropDishStrategy strategy = new DropDishStrategy(); - this.setStrategy(strategy); - this.currentOrder = this.strategy.execute(dish,this.currentOrder); - } - - private void setStrategy(OrderRecordingStrategy strategy) { - this.strategy = strategy; - } - - -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/Dish.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/Dish.java deleted file mode 100644 index 7bbb190..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/Dish.java +++ /dev/null @@ -1,9 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Tools; - -public class Dish { - - private String dishID; - - public String getDishID(){return this.dishID;} - -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/Table.java b/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/Table.java deleted file mode 100644 index c93b774..0000000 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/Table.java +++ /dev/null @@ -1,4 +0,0 @@ -package edu.tongji.designpattern.ClassDesign.Tools; - -public class Table { -} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Customer/Customer.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Customer/Customer.java new file mode 100644 index 0000000..4ad587e --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Customer/Customer.java @@ -0,0 +1,204 @@ +package edu.tongji.designpattern.CommonClass.Customer; + + +import edu.tongji.designpattern.CommonClass.Employee.Gender; +import edu.tongji.designpattern.CommonClass.Employee.Waiter; +import edu.tongji.designpattern.CommonClass.Other.Dish; +import edu.tongji.designpattern.DevideByPattern.CommandPattern.*; +import edu.tongji.designpattern.DevideByPattern.StatePattern.CustomerState; +import edu.tongji.designpattern.DevideByPattern.StatePattern.OrderState; + +import java.util.ArrayList; +import java.util.List; + +public class Customer { + ////<<<< + private String customerName; + private Gender customerGender; + private VIPType viptype = VIPType.NONVIP; + private List customers; + private CustomerState customerState; + private double time; //目前是传递一个时间参数,来控制顾客的状态变化 + private OrderPadCommand myCommand; + private Waiter servedWaiter; + + + + /** + * @description: 用于状态模式 + * 在构造函数中将顾客状态定义为等待状态 + * @Param: + * @return: + * @author: Cheng + **/ + public Customer(){ + customerState = new OrderState(); + } + + /** + * @description: 带参构造函数,实现组合模式 + * 每次生成顾客对象的时候生成一个List来存放顾客 + * VIP和非VIP顾客作为树的两个叶子节点 + * @Param: + * @return: + * @author: Cheng + **/ + public Customer(String name, Gender gender, VIPType VIPORNOT){ + this.customerName = name; + this.customerGender = gender; + this.viptype = VIPORNOT; + customers = new ArrayList(); + } + + /** + * @description: 用于状态模式 + * 顾客获取一个参数(目前设为时间) + * 以此来判断顾客的状态 + * @Param: + * @return: + * @author: Cheng + **/ + public double getTime() { + return time; + } + + /** + * @description: 用于状态模式 + * 给顾客传递预设参数(目前设为时间) + * 用于状态判断 + * @Param: double time + * @return: + * @author: Cheng + **/ + public void setTime(double time) { + this.time = time; + } + + /** + * @description: 用于状态模式 + * 将顾客的状态初始化为点单状态 + * @Param: CustomerState customerState + * @return: + * @author: Cheng + **/ + public void setState(CustomerState customerState){ + this.customerState= customerState; + } + + /** + * @description: 用于状态模式 + * 获取顾客的状态 + * @Param: + * @return: + * @author: Cheng + **/ + public void getState(){ + customerState.getState(this); + } + + + + /** + * @description: 用于组合模式 + * 对一个List执行add操作 + * @Param: + * @return: + * @author: Cheng + **/ + public void add(Customer c){ + customers.add(c); + } + + /** + * @description: 用于组合模式 + * 对一个List执行aremove操作 + * @Param: + * @return: + * @author: Cheng + **/ + public void remove(Customer c){ + customers.remove(c); + } + + /** + * @description: 用于组合模式 + * 生成一个顾客的List + * @Param: + * @return: + * @author: Cheng + **/ + public List getCustomers(){ + return customers; + } + + /** + * @description: 用于组合模式 + * 输出顾客的信息 + * @Param: + * @return: + * @author: Cheng + **/ + public String toString(){ + return ("顾客:[姓名:"+this.customerName + +",性别:"+this.customerGender+", 是否为VIP客户" + +this.viptype+"]"); + } + + + + + public void served(Waiter wt){ + this.servedWaiter = wt; + } + + public void serviceEnd(){ + this.servedWaiter.clearOrder(); + this.servedWaiter = null; + } + + private void setMyCommand(OrderPadCommand cmd){ + if (this.servedWaiter != null) + myCommand = cmd; + else + System.out.println("ERROR: no serving waiter!"); + } + + + public void setVIPType(){this.viptype = VIPType.VIP;} + public boolean isVIP(){return this.viptype == VIPType.VIP;} + + private void executeCommand(){ + this.myCommand.execute(); + } + + public void addDishDemand(Dish dish){ + AddDishCommand cmd = new AddDishCommand(this.servedWaiter,dish); + this.setMyCommand(cmd); + this.myCommand.execute(); + } + + public void dropDishDemand(Dish dish){ + DropDishCommand cmd = new DropDishCommand(this.servedWaiter,dish); + this.setMyCommand(cmd); + this.myCommand.execute(); + } + + public void createOrderDemand(Dish dish){ + CreateOrderCommand cmd = new CreateOrderCommand(this.servedWaiter); + this.setMyCommand(cmd); + this.myCommand.execute(); + } + + public void confirmOrderDemand(Dish dish){ + ConfirmOrderCommand cmd = new ConfirmOrderCommand(this.servedWaiter); + this.setMyCommand(cmd); + this.myCommand.execute(); + } + + + ////>>>> + + //下面函数是组合模式所需函数,用于顾客对象加入一个队列中,形成分层 + //树形结构,可以铜鼓VIP与否将顾客加入不同列表中 + +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Customer/VIPType.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Customer/VIPType.java new file mode 100644 index 0000000..5c130fb --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Customer/VIPType.java @@ -0,0 +1,5 @@ +package edu.tongji.designpattern.CommonClass.Customer; + +public enum VIPType{ + VIP,NONVIP; +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Cashier.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Cashier.java new file mode 100644 index 0000000..3ee27d9 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Cashier.java @@ -0,0 +1,80 @@ +package edu.tongji.designpattern.CommonClass.Employee; + + +import edu.tongji.designpattern.CommonClass.Other.BroadcastType; +import edu.tongji.designpattern.DevideByPattern.AdapterPattern.RealDiscount; +import edu.tongji.designpattern.DevideByPattern.BridgePattern.AirConditionerAPI; + +import java.text.DecimalFormat; + +public class Cashier extends Employee { + + private double temperature; + + + //当前订单所使用的优惠卷 + String couponType; + //适配器模式使用的类 + RealDiscount realDiscount; + + /** + * @description: 构造函数,除去父类参数,还有温度参数temperature + * @Param: + * @return: + * @author: Cheng + **/ + public Cashier(double temperature, String employeeID, EmployeeTitle employeeTitle, AirConditionerAPI airConditionerAPI, String couponType) { + super(); + this.temperature=temperature; + this.employeeTitle=employeeTitle.CASHIER; + this.couponType = couponType; + realDiscount = new RealDiscount(couponType); + } + + //收银员处理订单的函数,使用了适配器模式,zhujitao + public void settleAccount(){ + //这里执行结账操作,结账成功返回true + if(couponType.equals("N")){ + System.out.println("您本次就餐共花费了"+getOrder().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() + "元。"); + } + } + + /** + * @description: 用于实现桥接模式 + * 重写的改变空调温度函数 + * 不支持Cashier操作 + * @Param: + * @return: + * @author: Cheng + **/ + @Override + public void changeTemperature() { + } + + @Override + public void update() { + + } + + @Override + public void settleComplaint() { + + } + + @Override + public void getMessage(String msg) { + + } + + + + @Override + public void notifyChannel(BroadcastType broadcastType, String operation) { + + } + +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Cook.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Cook.java new file mode 100644 index 0000000..b467098 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Cook.java @@ -0,0 +1,103 @@ +package edu.tongji.designpattern.CommonClass.Employee; + + +import edu.tongji.designpattern.CommonClass.Other.BroadcastType; +import edu.tongji.designpattern.CommonClass.Order.Order; +import edu.tongji.designpattern.DevideByPattern.BridgePattern.AirConditionerAPI; + +public class Cook extends Employee { + + private double temperature; + + /** + * @description: 构造函数,除去父类参数,还有温度参数temperature + * @Param: + * @return: + * @author: Cheng + **/ + public Cook(double temperature, String employeeID, EmployeeTitle employeeTitle, AirConditionerAPI airConditionerAPI, Order order) { + super(); + this.temperature=temperature; + this.employeeTitle=employeeTitle.COOK; + } + + /** + * @author ruanby + * @date 11/2 + * @return null + * @function 厨师的默认构造函数 + */ + public Cook(){ + super(); + } + + + + /** + * @description: 用于实现桥接模式 + * 重写的改变空调温度函数 + * 不支持Cook操作 + * @Param: + * @return: + * @author: Cheng + **/ + @Override + public void changeTemperature() { + } + + + /** + * @author ruanby + * @date 11/2 + * @return null + * @function 将order参数从厨师的构造函数中分离,订单创建后,将厨师加入订单的通知列表中 + */ + @Override + public void setOrder(Order order) { + this.order=order; + this.order.addEmploy(this); + } + + + /** + * @author ruanby + * @date 11/2 + * @return null + * @function 订单状态改变后,更新厨师的行为:接受到新订单,厨师开始做菜;订单完成,厨师等待服务员接菜 + */ + @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() { + + } + + @Override + public void getMessage(String msg) { + + } + + + + @Override + protected void notifyChannel(BroadcastType broadcastType, String operation) { + try{ + if (broadcastType == BroadcastType.ALL_EMPLOYEE){ + + } + }catch (NullPointerException e){ + System.out.println(e.getMessage()); + } + } + + +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Employee.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Employee.java new file mode 100644 index 0000000..a1a0e94 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Employee.java @@ -0,0 +1,98 @@ +package edu.tongji.designpattern.CommonClass.Employee; + + +import edu.tongji.designpattern.CommonClass.Other.BroadcastType; +import edu.tongji.designpattern.DevideByPattern.MediatorPattern.InterPhoneChannel; +import edu.tongji.designpattern.CommonClass.Order.Order; +import edu.tongji.designpattern.DevideByPattern.BridgePattern.AirConditionerAPI; + + +public abstract class Employee { + + protected Order order; + protected Gender employeeGender; + protected String employeeID; + protected EmployeeTitle employeeTitle; + public InterPhoneChannel myInterphoneChannel; + + //属性:空调接口,protected类型 + protected AirConditionerAPI airConditionerAPI; + + + /** + * @description: 抽象类Employee的构造函数,包含三个参数 + * employeeID、employeeTitle是职工的固有属性 + * airConditionerAPI是空调调用接口 + * @Param: + * @return: + * @author: Cheng + * @created: 2019/11/2/19:05 + **/ + public Employee(String employeeID, EmployeeTitle employeeTitle,AirConditionerAPI airConditionerAPI){ + this.employeeID=employeeID; + this.employeeTitle=employeeTitle; + this.airConditionerAPI=airConditionerAPI; + } + + + + /** + * @author ruanby + * @date 11/2 + * @return null + * @function 职工类的默认构造函数 + */ + public Employee() { + + } + + + /** + * @description: 改变空调温度的函数 + * @Param: + * @return: + * @author: Cheng + **/ + public abstract void changeTemperature(); + + + /** + * @author ruanby + * @date 11/2 + * @return null + * @function 订单状态改变后,对服务员和厨师的工作状态进行更新,由厨师和服务员进行重写 + */ + public abstract void update(); + + + public abstract void settleComplaint(); + + //// process the massage received + public void getMessage(String msg){ + System.out.println(this.employeeID+" receive message "+msg); + } + + + + + public Order getOrder() { + return order; + } + + /** + * @author ruanby + * @date 11/2 + * @return null + * @function 职工属性中订单的set方法,会被厨师和服务员类重写 + */ + public void setOrder(Order order) { + this.order = order; + } + + public Boolean setChannel(InterPhoneChannel channel){this.myInterphoneChannel = channel; return true;} + protected abstract void notifyChannel(BroadcastType broadcastType, String operation); + public EmployeeTitle getTitle(){return this.employeeTitle;} + public String getEmployeeID(){return this.employeeID;} +} + + diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/EmployeeTitle.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/EmployeeTitle.java similarity index 54% rename from DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/EmployeeTitle.java rename to DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/EmployeeTitle.java index bf0451f..7392df5 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/EmployeeTitle.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/EmployeeTitle.java @@ -1,4 +1,4 @@ -package edu.tongji.designpattern.ClassDesign.Person; +package edu.tongji.designpattern.CommonClass.Employee; public enum EmployeeTitle { MANAGER, WAITER, COOK, CASHIER diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Gender.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Gender.java new file mode 100644 index 0000000..67934e0 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Gender.java @@ -0,0 +1,5 @@ +package edu.tongji.designpattern.CommonClass.Employee; + +public enum Gender { + MALE, FEMALE +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Manager.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Manager.java new file mode 100644 index 0000000..94ddfbb --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Manager.java @@ -0,0 +1,72 @@ +package edu.tongji.designpattern.CommonClass.Employee; + + +import edu.tongji.designpattern.CommonClass.Other.BroadcastType; +import edu.tongji.designpattern.DevideByPattern.BridgePattern.AirConditionerAPI; + +public class Manager extends Employee { + + private double temperature; + + /** + * @description: 构造函数,除去父类参数,还有温度参数temperature + * @Param: + * @return: + * @author: Cheng + **/ + public Manager(double temperature, String employeeID, EmployeeTitle employeeTitle, AirConditionerAPI airConditionerAPI) { + super(); + this.temperature=temperature; + this.employeeTitle = EmployeeTitle.MANAGER; + } + + //经理解决顾客投诉的方法,使用的是责任链模式,zhujitao + @Override + public void settleComplaint(){ + System.out.println("您好,我是本店的经理,请问您有什么问题吗?"); + System.out.println("我已经了解了事情的经过,确实是我们的工作疏忽,我们一定会妥善解决的。"); + System.out.println("您好,我们会为您的本次就餐提供A类优惠卷,在结账时会提供6.8折优惠。"); + System.out.println("非常抱歉,同时祝您就餐愉快!"); + } + + + /** + * @description: 用于实现桥接模式 + * 重写的改变空调温度函数 + * 支持Manager操作 + * @Param: + * @return: + * @author: Cheng + **/ + @Override + public void changeTemperature() { + System.out.println("大堂经理修改空调温度——"); + airConditionerAPI.changeTem(temperature); + } + + @Override + public void update() { + + } + + + @Override + public void getMessage(String msg) { + + } + + public boolean notifyWaitersToService(){ + if (this.myInterphoneChannel == null) + return false; + return this.myInterphoneChannel.notify(this, + "new service", + BroadcastType.ALL_EMPLOYEE); + } + + @Override + protected void notifyChannel(BroadcastType broadcastType, String operation) { + + } + + +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Waiter.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Waiter.java new file mode 100644 index 0000000..0621bc8 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Waiter.java @@ -0,0 +1,177 @@ +package edu.tongji.designpattern.CommonClass.Employee; + + +import edu.tongji.designpattern.CommonClass.Other.BroadcastType; +import edu.tongji.designpattern.CommonClass.Customer.Customer; +import edu.tongji.designpattern.CommonClass.Items.Item; +import edu.tongji.designpattern.CommonClass.Order.Order; +import edu.tongji.designpattern.CommonClass.Other.Dish; +import edu.tongji.designpattern.DevideByPattern.BridgePattern.AirConditionerAPI; +import edu.tongji.designpattern.DevideByPattern.FacadePattern.OpenerMaker; +import edu.tongji.designpattern.DevideByPattern.StrategyPattern.*; + +////>>>> +public class Waiter extends Employee { + + Customer customer; + private double temperature; + public OpenerMaker openerMaker; + private Order currentOrder = null; + private OrderRecordingStrategy strategy = null; + + + /** + * @author ruanby + * @date 11/2 + * @return + * @function 服务员的默认构造函数 + */ + public Waiter(){ + super(); + } + /** + * @description: 构造函数,除去父类参数,还有温度参数temperature + * @Param: + * @return: + * @author: Cheng + **/ + public Waiter(double temperature, String employeeID, EmployeeTitle employeeTitle,AirConditionerAPI airConditionerAPI) { + super(); + this.temperature= temperature; + this.employeeTitle = EmployeeTitle.WAITER; + } + + /** + * @description: 用于实现桥接模式 + * 重写的改变空调温度函数 + * 支持Waiter操作 + * @Param: + * @return: + * @author: Cheng + **/ + @Override + public void changeTemperature() { + System.out.println("服务员修改空调温度——"); + airConditionerAPI.changeTem(temperature); + } + + + /** + * @description: 用于实现状态模式 + * 获取顾客状态 + * @Param: + * @return: + * @author: Cheng + **/ + public void getState(Customer customer){ + System.out.println("顾客现在的状态是:"); + } + + + + /** + * @author ruanby + * @date 11/2 + * @return null + * @function 将order参数从服务员的构造函数中分离,订单创建后,将服务员加入订单的通知列表中 + */ + @Override + public void setOrder(Order order) { + this.order=order; + this.order.addEmploy(this); + } + + + //服务员处理顾客投诉的函数,使用的是责任链模式,zhujitao + @Override + public void settleComplaint() { + System.out.println("您好,请问您有什么问题吗?"); + System.out.println("好的,我们会催促后厨尽快为您准备食物,请您稍等片刻!"); + System.out.println("非常抱歉,同时祝您就餐愉快!"); + } + + + /** + * @author ruanby + * @date 11/2 + * @return null + * @function 订单状态改变后,更新服务员的行为:新订单创建,服务员等待接菜;订单完成,服务员开始上菜 + */ + @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 getMessage(String msg) { + System.out.println(this.employeeID+" receive "+msg); + } + + + + @Override + protected void notifyChannel(BroadcastType broadcastType, String operation) { + + } + + + /** + * @author ruanby + * @date 11/2 + * @return null + * @function 服务员调用该方法,遍历当前订单,找到顾客点的饮品并为顾客打开 + */ + 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(); + } + } + } + + public void clearOrder(){ + this.order = null; + } + + public void createOrderForCustomer(){ + OrderCreateStrategy strategy = new OrderCreateStrategy(); + this.setStrategy(strategy); + this.currentOrder = this.strategy.execute(null,null); + } + + public void confirmOrderForCustomer(){ + OrderConfirmStrategy strategy = new OrderConfirmStrategy(); + this.setStrategy(strategy); + this.currentOrder = this.strategy.execute(null,this.currentOrder); + } + + public void addDishForCustomer(Dish item){ + AddDishStrategy strategy = new AddDishStrategy(); + this.setStrategy(strategy); + this.currentOrder = this.strategy.execute(item,this.currentOrder); + } + + public void dropDishForCustomer(Dish item){ + DropDishStrategy strategy = new DropDishStrategy(); + this.setStrategy(strategy); + this.currentOrder = this.strategy.execute(item,this.currentOrder); + } + + private void setStrategy(OrderRecordingStrategy strategy) { + this.strategy = strategy; + } + + +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Items/Item.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Items/Item.java new file mode 100644 index 0000000..fa456f5 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Items/Item.java @@ -0,0 +1,50 @@ +package edu.tongji.designpattern.CommonClass.Items; + +public class Item { + private String dishID; + 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; + } + + public String getDishID(){return this.dishID;} + +// private String name; +// private Integer price; +// private String category; +// +// +// public void setName(String name){ +// this.name=name; +// } +// +// public void setPrice(Integer price) { +// this.price = price; +// } +// +// public void setCategory(String category) { +// this.category = category; +// } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Items/Memento.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Items/Memento.java new file mode 100644 index 0000000..5bedd16 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Items/Memento.java @@ -0,0 +1,37 @@ +package edu.tongji.designpattern.CommonClass.Items; + +/* + * created by zhujitao + * 2019/10/22 + * 使用单例模式去创建一个类 + * */ + + +import edu.tongji.designpattern.CommonClass.Items.OrderClone; + +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/CommonClass/Items/Menu.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Items/Menu.java new file mode 100644 index 0000000..9d73b88 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Items/Menu.java @@ -0,0 +1,58 @@ +package edu.tongji.designpattern.CommonClass.Items; + +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/AbstractAggregate.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/AbstractAggregate.java similarity index 79% rename from DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/AbstractAggregate.java rename to DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/AbstractAggregate.java index 9225fcc..5f20c0f 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/AbstractAggregate.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/AbstractAggregate.java @@ -1,6 +1,7 @@ -package edu.tongji.designpattern.ClassDesign.Order; +package edu.tongji.designpattern.CommonClass.Order; -import edu.tongji.designpattern.ClassDesign.Business.Iterator.MyIterator; + +import edu.tongji.designpattern.DevideByPattern.IteratorPattern.MyIterator; import java.util.ArrayList; import java.util.List; diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/Order.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/Order.java new file mode 100644 index 0000000..4bf6162 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/Order.java @@ -0,0 +1,151 @@ +package edu.tongji.designpattern.CommonClass.Order; + + +import edu.tongji.designpattern.CommonClass.Employee.Employee; +import edu.tongji.designpattern.CommonClass.Items.Item; +import edu.tongji.designpattern.CommonClass.Other.Dish; +import edu.tongji.designpattern.DevideByPattern.IteratorPattern.DishIterator; +import edu.tongji.designpattern.DevideByPattern.IteratorPattern.MyIterator; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class Order extends AbstractAggregate { + private String orderID; + private Date date; + private OrderType type = OrderType.UNDETERMINED; + private List dishes = new ArrayList<>(); + private List itemList = new ArrayList(); + private List employeeList = new ArrayList(); + private double price = 0.0; + private Integer orderState; + + + //下面是get和set方法,zhujitao + public double getPrice() { + return price; + } + + public void setPrice(double price) { + this.price = price; + } + + /** + * @author ruanby + * @date 11/2 + * @return List + * @function 返回当前订单中的菜品和饮品list + */ + public List getItemList() { + return itemList; + } + + + public List getEmployeeList() { + return employeeList; + } + + public void setEmployeeList(List employeeList) { + this.employeeList = employeeList; + } + + + /** + * @author eyisheng + */ + public String getOrderID() { + return orderID; + } + + public Date getDate(){ + return date; + } + + public OrderType getType(){ + return type; + } + + /** + * @author ruanby + * @date 11/2 + * @return Integer + * @function 返回订单的状态,新订单创建或者当前订单完成,用0/1表示 + */ + public Integer getOrderState() { + return orderState; + } + + + + /** + * @author ruanby + * @date 11/2 + * @return null + * @function 订单状态发生变化后,通知所有的职工,更新他们的工作状态 + */ + private void notifyAllEmployees() { + for (Employee employee : employeeList) { + employee.update(); + } + } + + + /** + * @author ruanby + * @date 11/2 + * @return null + * @function 向要通知的职工list中添加职工对象 + */ + public void addEmploy(Employee e){ + employeeList.add(e); + } + + + /** + * @author ruanby + * @date 11/2 + * @return null + * @function 设置订单状态 + */ + public void setOrderState(Integer orderState) { + this.orderState = orderState; + notifyAllEmployees(); + } + + + /* + convert @undetermined-order into @order + */ + public void setTypeToDetermined(){ + this.type = OrderType.DETERMINED; + } + + + /* + add new dish to the dish array + */ + public void addDish(Dish dsh){ + dishes.add(dsh); + } + + /* + remove dish by dishID + */ + public boolean removeDish(String dishID){ + for (Dish dsh:dishes){ + if (dishID == dsh.getDishID()){ + return dishes.remove(dsh); + } + } + return false; + } + + public List getDishes(){return this.dishes;} + + + @Override + public MyIterator createIterator() { + return new DishIterator(this,dishes); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/OrderAggregate.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/OrderAggregate.java new file mode 100644 index 0000000..dde7c02 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/OrderAggregate.java @@ -0,0 +1,13 @@ +package edu.tongji.designpattern.CommonClass.Order; + + +import edu.tongji.designpattern.DevideByPattern.IteratorPattern.MyIterator; +import edu.tongji.designpattern.DevideByPattern.IteratorPattern.OrderIterator; + +public class OrderAggregate extends AbstractAggregate { + + @Override + public MyIterator createIterator() { + return new OrderIterator(this, lst); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/OrderType.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/OrderType.java similarity index 51% rename from DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/OrderType.java rename to DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/OrderType.java index d59fc37..9dac0dd 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Order/OrderType.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/OrderType.java @@ -1,4 +1,4 @@ -package edu.tongji.designpattern.ClassDesign.Order; +package edu.tongji.designpattern.CommonClass.Order; public enum OrderType { DETERMINED, UNDETERMINED diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/BroadcastType.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/BroadcastType.java similarity index 56% rename from DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/BroadcastType.java rename to DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/BroadcastType.java index b8c819a..f93b3a6 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/BroadcastType.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/BroadcastType.java @@ -1,4 +1,4 @@ -package edu.tongji.designpattern.ClassDesign.Person; +package edu.tongji.designpattern.CommonClass.Other; public enum BroadcastType { MANAGER_REPORT, ALL, ALL_EMPLOYEE diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/Dish.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/Dish.java new file mode 100644 index 0000000..b430f7f --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/Dish.java @@ -0,0 +1,25 @@ +package edu.tongji.designpattern.CommonClass.Other; + +public class Dish { + + private String dishID; + + public String getDishID(){return this.dishID;} + +// private String name; +// private Integer price; +// private String category; +// +// +// public void setName(String name){ +// this.name=name; +// } +// +// public void setPrice(Integer price) { +// this.price = price; +// } +// +// public void setCategory(String category) { +// this.category = category; +// } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/Table.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/Table.java new file mode 100644 index 0000000..bc4cea4 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/Table.java @@ -0,0 +1,4 @@ +package edu.tongji.designpattern.CommonClass.Other; + +public class Table { +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/Coupon.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/Coupon.java new file mode 100644 index 0000000..4c6fdba --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/Coupon.java @@ -0,0 +1,20 @@ +package edu.tongji.designpattern.DevideByPattern.AdapterPattern; +/* + * 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/DevideByPattern/AdapterPattern/CouponA.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponA.java new file mode 100644 index 0000000..6efd511 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponA.java @@ -0,0 +1,23 @@ +package edu.tongji.designpattern.DevideByPattern.AdapterPattern; + +/* + * 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/DevideByPattern/AdapterPattern/CouponB.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponB.java new file mode 100644 index 0000000..618edef --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponB.java @@ -0,0 +1,21 @@ +package edu.tongji.designpattern.DevideByPattern.AdapterPattern;/* + * 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/DevideByPattern/AdapterPattern/CouponC.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponC.java new file mode 100644 index 0000000..1501d69 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponC.java @@ -0,0 +1,21 @@ +package edu.tongji.designpattern.DevideByPattern.AdapterPattern;/* +* 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/DevideByPattern/AdapterPattern/CouponN.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponN.java new file mode 100644 index 0000000..d2bca5f --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/CouponN.java @@ -0,0 +1,24 @@ +package edu.tongji.designpattern.DevideByPattern.AdapterPattern; + +/* + * 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/DevideByPattern/AdapterPattern/Discount.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/Discount.java new file mode 100644 index 0000000..342e8aa --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/Discount.java @@ -0,0 +1,12 @@ +package edu.tongji.designpattern.DevideByPattern.AdapterPattern;/* + * created by zhujitao + * 2019/10/22 + * 优惠卷适配器的接口 + * */ + +public interface Discount { + + //获取折扣数值的函数,返回值为double类型 + public double getDiscount(); + +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/DiscountAdapter.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/DiscountAdapter.java new file mode 100644 index 0000000..2189a36 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/DiscountAdapter.java @@ -0,0 +1,31 @@ +package edu.tongji.designpattern.DevideByPattern.AdapterPattern; + +/* + * 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/DevideByPattern/AdapterPattern/RealDiscount.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/RealDiscount.java new file mode 100644 index 0000000..ee593a5 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/AdapterPattern/RealDiscount.java @@ -0,0 +1,25 @@ +package edu.tongji.designpattern.DevideByPattern.AdapterPattern; + +/* + * created by zhujitao + * 2019/10/22 + * 实际得到具体折扣的类,通过输入的字符串返回不同的折扣比例 + * */ + +public class RealDiscount implements Discount { + + DiscountAdapter discountAdapter = null; + String couponType = ""; + + + public RealDiscount(String couponType){ + this.couponType = couponType; + } + + //实际上获取优惠卷折扣值的函数,返回值为double + @Override + public double getDiscount() { + discountAdapter = new DiscountAdapter(couponType); + return discountAdapter.getDiscount(); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BridgePattern/AirConditionerAPI.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BridgePattern/AirConditionerAPI.java new file mode 100644 index 0000000..1c80b94 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BridgePattern/AirConditionerAPI.java @@ -0,0 +1,17 @@ +package edu.tongji.designpattern.DevideByPattern.BridgePattern; + +/** + * @created by Cheng + * 空调API接口:用于桥接模式 + * 方法:changeTem(): 改变温度的函数 + */ +public interface AirConditionerAPI { + + /** + * @description: 用于改变空调温度 + * @Param: dounle temperature + * @return: + * @author: Cheng + **/ + void changeTem(double temperature); +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BridgePattern/FloorAirConditioner.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BridgePattern/FloorAirConditioner.java new file mode 100644 index 0000000..1cda34f --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BridgePattern/FloorAirConditioner.java @@ -0,0 +1,22 @@ +package edu.tongji.designpattern.DevideByPattern.BridgePattern; + + + +/** + * @created by Cheng + * 空调API实体类:表示立式空调 + * 方法:changeTem(): 改变立式空调温度的函数 + */ +public class FloorAirConditioner implements AirConditionerAPI { + + /** + * @description: 用于改变立式空调温度 + * @Param: dounle temperature + * @return: + * @author: Cheng + **/ + @Override + public void changeTem(double temperature) { + System.out.println("修改立式空调温度为:"+temperature); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BridgePattern/HangingAirConditioner.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BridgePattern/HangingAirConditioner.java new file mode 100644 index 0000000..c31cd23 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BridgePattern/HangingAirConditioner.java @@ -0,0 +1,22 @@ +package edu.tongji.designpattern.DevideByPattern.BridgePattern; + + + +/** + * @created by Cheng + * 空调API实体类:表示挂式空调 + * 方法:changeTem(): 改变挂失=式空调温度的函数 + */ +public class HangingAirConditioner implements AirConditionerAPI{ + + /** + * @description: 用于改变挂式空调温度 + * @Param: dounle temperature + * @return: + * @author: Cheng + **/ + @Override + public void changeTem(double temperature) { + System.out.println("修改挂式空调温度为:"+temperature); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/Combo.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/Combo.java new file mode 100644 index 0000000..beacc48 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/Combo.java @@ -0,0 +1,37 @@ +package edu.tongji.designpattern.DevideByPattern.BuilderPattern; + +/** + * @created by Cheng + * 套餐类:用于建造者模式 + * 属性:表示一个套餐的“组件”,该套餐由四种组件组成 + * 方法:用于描述组件的性质 + */ +public class Combo { + private String dishA; + private String dishB; + private String drink; + private String price; + + /** + * @description: “组件”信息描述函数,用来描述组件信息或性质 + * 下面几个函数性质相同 + * @Param: String dishA + * @return: + * @author: Cheng + **/ + public void setDishA(String dishA) { + System.out.println("热菜:"+dishA+" "); + } + + public void setDishB(String dishB) { + System.out.println("冷菜:"+dishB+" "); + } + + public void setDrink(String drink) { + System.out.println("饮料:"+drink+" "); + } + + public void setPrice(String price){ + System.out.println("总价:"+price+" "); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ComboBuilder.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ComboBuilder.java new file mode 100644 index 0000000..ad4ce0f --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ComboBuilder.java @@ -0,0 +1,41 @@ +package edu.tongji.designpattern.DevideByPattern.BuilderPattern; + +/** + * @created by Cheng + * 套餐建造类:建造者模式的核心类 + * 通过继承这个类可以创建不同的建造者 + * 属性:一个protected类型的套餐类对象 + * 方法:建造者建造“组件”的函数和一个返回套餐的方法 + * 通过这些方法可以建造不同的组件(本例中即套餐) + */ +public abstract class ComboBuilder { + protected Combo combo=new Combo(); + + + /** + * @description: 具体建造函数:建造第一个组件,以下函数依此类推 + * @Param: + * @return: + * @author: Cheng + **/ + public abstract void buildDishA(); + + public abstract void buildDishB(); + + public abstract void buildDrink(); + + public abstract void buildPrice(); + + + /** + * @description: 返回实现的套餐,返回类型为Combo(套餐)类型 + * 区别于以上的abstract类型的函数 + * @Param: + * @return: + * @author: Cheng + **/ + public Combo getResult(){ + return combo; + } + +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ConcreteComboBuilderA.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ConcreteComboBuilderA.java new file mode 100644 index 0000000..ba84b31 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ConcreteComboBuilderA.java @@ -0,0 +1,31 @@ +package edu.tongji.designpattern.DevideByPattern.BuilderPattern; + +/** + * @created by Cheng + * 套餐建造类A: 继承自套餐建造类,是具体化的一个实例 + * 属性:有继承自父类的combo对象 + * 方法:具体实现建造功能 + */ +public class ConcreteComboBuilderA extends ComboBuilder { + + //具体建造函数:建造第一个组件,以下函数依此类推 + @Override + public void buildDishA() { + combo.setDishA("蒸鱼"); + } + + @Override + public void buildDishB() { + combo.setDishB("生菜沙拉"); + + } + @Override + public void buildDrink() { + combo.setDrink("可乐"); + } + + @Override + public void buildPrice() { + combo.setPrice("40"); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ConcreteComboBuilderB.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ConcreteComboBuilderB.java new file mode 100644 index 0000000..67b65d9 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/ConcreteComboBuilderB.java @@ -0,0 +1,29 @@ +package edu.tongji.designpattern.DevideByPattern.BuilderPattern; + +/** + * @created by Cheng + * 区别于ConcreteComboBuilderA的另一个具体建造者 + */ +public class ConcreteComboBuilderB extends ComboBuilder{ + + //具体建造函数:建造第一个组件,以下函数依此类推 + @Override + public void buildDishA() { + combo.setDishA("蒸肉"); + } + + @Override + public void buildDishB() { + combo.setDishB("番茄沙拉"); + + } + @Override + public void buildDrink() { + combo.setDrink("雪碧"); + } + + @Override + public void buildPrice() { + combo.setPrice("41"); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/Director.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/Director.java new file mode 100644 index 0000000..134c764 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/BuilderPattern/Director.java @@ -0,0 +1,33 @@ +package edu.tongji.designpattern.DevideByPattern.BuilderPattern; + +/** + * @created by Cheng + * 指挥者类:调用建造者对象中的部件构造与装配方法完成复杂对象的创建 + * 在指挥者中不涉及具体套餐的信息 + * 属性: 一个ComboBuilder对象 + * 方法: 构造函数和construct()函数 + */ +public class Director { + private ComboBuilder comboBuilder; + + public Director(ComboBuilder comboBuilder){ + this.comboBuilder=comboBuilder; + } + + /** + * @description: 套餐构建与组装方法 + * @Param: + * @return: + * @author: Cheng + **/ + public Combo construct(){ + //组件的具体构造过程 + System.out.println("套餐内容:"); + comboBuilder.buildDishA(); + comboBuilder.buildDishB(); + comboBuilder.buildDrink(); + comboBuilder.buildPrice(); + return comboBuilder.getResult(); + } + +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/ChainofResponsibilityPattern/Complaint.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/ChainofResponsibilityPattern/Complaint.java new file mode 100644 index 0000000..f34ad0a --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/ChainofResponsibilityPattern/Complaint.java @@ -0,0 +1,79 @@ +package edu.tongji.designpattern.DevideByPattern.ChainofResponsibilityPattern; + +/* + * created by zhujitao + * 2019/10/22 + * 责任链模式里面的投诉类 + * */ + + +import edu.tongji.designpattern.CommonClass.Employee.Employee; +import edu.tongji.designpattern.CommonClass.Employee.Manager; +import edu.tongji.designpattern.CommonClass.Employee.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; + } + } + + //get and set方法 + 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/Command/AddDishCommand.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/CommandPattern/AddDishCommand.java similarity index 58% rename from DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/AddDishCommand.java rename to DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/CommandPattern/AddDishCommand.java index 6173062..7c23d4b 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/AddDishCommand.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/CommandPattern/AddDishCommand.java @@ -1,7 +1,8 @@ -package edu.tongji.designpattern.ClassDesign.Business.Command; +package edu.tongji.designpattern.DevideByPattern.CommandPattern; -import edu.tongji.designpattern.ClassDesign.Person.Waiter; -import edu.tongji.designpattern.ClassDesign.Tools.Dish; + +import edu.tongji.designpattern.CommonClass.Employee.Waiter; +import edu.tongji.designpattern.CommonClass.Other.Dish; public class AddDishCommand extends OrderPadCommand { diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/CommandPattern/ConfirmOrderCommand.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/CommandPattern/ConfirmOrderCommand.java new file mode 100644 index 0000000..524b8fb --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/CommandPattern/ConfirmOrderCommand.java @@ -0,0 +1,15 @@ +package edu.tongji.designpattern.DevideByPattern.CommandPattern; + + +import edu.tongji.designpattern.CommonClass.Employee.Waiter; + +public class ConfirmOrderCommand extends OrderPadCommand { + public ConfirmOrderCommand(Waiter rec){ + super(rec); + + } + @Override + public void execute() { + this.receiver.confirmOrderForCustomer(); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/CommandPattern/CreateOrderCommand.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/CommandPattern/CreateOrderCommand.java new file mode 100644 index 0000000..a780778 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/CommandPattern/CreateOrderCommand.java @@ -0,0 +1,15 @@ +package edu.tongji.designpattern.DevideByPattern.CommandPattern; + + + +import edu.tongji.designpattern.CommonClass.Employee.Waiter; + +public class CreateOrderCommand extends OrderPadCommand { + public CreateOrderCommand(Waiter rec){ + super(rec); + } + @Override + public void execute() { + this.receiver.createOrderForCustomer(); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/CommandPattern/DropDishCommand.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/CommandPattern/DropDishCommand.java new file mode 100644 index 0000000..a11e40d --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/CommandPattern/DropDishCommand.java @@ -0,0 +1,16 @@ +package edu.tongji.designpattern.DevideByPattern.CommandPattern; + + +import edu.tongji.designpattern.CommonClass.Employee.Waiter; +import edu.tongji.designpattern.CommonClass.Other.Dish; + +public class DropDishCommand extends OrderPadCommand { + public DropDishCommand(Waiter rec, Dish dish){ + super(rec); + this.dish = dish; + } + @Override + public void execute() { + this.receiver.dropDishForCustomer(this.dish); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/OrderPadCommand.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/CommandPattern/OrderPadCommand.java similarity index 52% rename from DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/OrderPadCommand.java rename to DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/CommandPattern/OrderPadCommand.java index b29fa48..dcdfe50 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Command/OrderPadCommand.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/CommandPattern/OrderPadCommand.java @@ -1,8 +1,9 @@ -package edu.tongji.designpattern.ClassDesign.Business.Command; +package edu.tongji.designpattern.DevideByPattern.CommandPattern; -import edu.tongji.designpattern.ClassDesign.Order.Order; -import edu.tongji.designpattern.ClassDesign.Person.Waiter; -import edu.tongji.designpattern.ClassDesign.Tools.Dish; + +import edu.tongji.designpattern.CommonClass.Employee.Waiter; +import edu.tongji.designpattern.CommonClass.Order.Order; +import edu.tongji.designpattern.CommonClass.Other.Dish; public abstract class OrderPadCommand { protected Waiter receiver = null; diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/DecoratorPattern/CashierDecorator.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/DecoratorPattern/CashierDecorator.java new file mode 100644 index 0000000..56de23b --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/DecoratorPattern/CashierDecorator.java @@ -0,0 +1,29 @@ +package edu.tongji.designpattern.DevideByPattern.DecoratorPattern; + +/* + * created by zhujitao + * 2019/10/22 + * 收银员类的抽象装饰类 + * */ + + +import edu.tongji.designpattern.CommonClass.Employee.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/DevideByPattern/DecoratorPattern/VIPCashierDecorator.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/DecoratorPattern/VIPCashierDecorator.java new file mode 100644 index 0000000..5f6e968 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/DecoratorPattern/VIPCashierDecorator.java @@ -0,0 +1,46 @@ +package edu.tongji.designpattern.DevideByPattern.DecoratorPattern; + +/* + * created by zhujitao + * 2019/10/22 + * 收银员类的装饰类的具体的类 + * */ + +import edu.tongji.designpattern.CommonClass.Employee.*; + +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; + } + + //非VIP用户执行结账操作之后的询问是否办理VIP的函数 + 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/DevideByPattern/FacadePattern/BeerOpener.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/BeerOpener.java new file mode 100644 index 0000000..77bc21d --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/BeerOpener.java @@ -0,0 +1,17 @@ +package edu.tongji.designpattern.DevideByPattern.FacadePattern; + +//啤酒开瓶器,实现饮料开瓶器接口 +public class BeerOpener implements DrinkOpener { + + @Override + /** + * @author ruanby + * @date 2019/11/2 + + * @return null + * @function 打印要开的饮料信息 + */ + public void Open() { + System.out.println("class BeerOpener:method Open:服务员为您打开了百威啤酒!"); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/CockOpener.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/CockOpener.java new file mode 100644 index 0000000..c03db2e --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/CockOpener.java @@ -0,0 +1,17 @@ +package edu.tongji.designpattern.DevideByPattern.FacadePattern; + +//可乐开瓶器,实现饮料开瓶器接口 +public class CockOpener implements DrinkOpener { + + @Override + /** + * @author ruanby + * @date 2019/11/2 + + * @return null + * @function 打印要开的饮料信息 + */ + public void Open() { + System.out.println("class CockOpener:method Open:服务员为您打开了可乐!"); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/DarkPlumJuiceOpener.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/DarkPlumJuiceOpener.java new file mode 100644 index 0000000..fc63871 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/DarkPlumJuiceOpener.java @@ -0,0 +1,16 @@ +package edu.tongji.designpattern.DevideByPattern.FacadePattern; +//酸梅汁开瓶器,实现饮料开瓶器接口 +public class DarkPlumJuiceOpener implements DrinkOpener { + + @Override + /** + * @author ruanby + * @date 2019/11/2 + + * @return null + * @function 打印要开的饮料信息 + */ + public void Open() { + System.out.println("class DarkPlumJuiceOpener:method Open:服务员为您打开了酸梅汁!"); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/DrinkOpener.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/DrinkOpener.java new file mode 100644 index 0000000..bc9ed1b --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/DrinkOpener.java @@ -0,0 +1,14 @@ +package edu.tongji.designpattern.DevideByPattern.FacadePattern; + +//饮料开瓶器接口,只有一个open饮料方法 +public interface DrinkOpener { + + /** + * @author ruanby + * @date + * @return null + * @function 打开饮料方法 + */ + void Open(); + +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/OpenerMaker.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/OpenerMaker.java new file mode 100644 index 0000000..917c605 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/OpenerMaker.java @@ -0,0 +1,44 @@ +package edu.tongji.designpattern.DevideByPattern.FacadePattern; + +//向客户提供了一个客户可以使用开饮料功能的接口 +public class OpenerMaker { + + //定义各种饮料开瓶器实例 + private DrinkOpener beerOpener; + private DrinkOpener cockOpener; + private DrinkOpener spriteOpener; + private DrinkOpener darkPlumJuiceOpener; + + /** + * @author ruanby + * @date 11/2 + * @return null + * @function 这个接口的构造函数,初始化上面代码定义的饮料开瓶器对象 + */ + public OpenerMaker(){ + beerOpener = new BeerOpener(); + cockOpener = new CockOpener(); + spriteOpener = new SpriteOpener(); + darkPlumJuiceOpener = new DarkPlumJuiceOpener(); + } + + /** + * @author ruanby + * @date + * @return null + * @function 这里实现接口提供的方法,它们分别为打开啤酒,打开可乐,打开雪碧,打开酸梅汁 + */ + 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/DevideByPattern/FacadePattern/SpriteOpener.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/SpriteOpener.java new file mode 100644 index 0000000..a756098 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FacadePattern/SpriteOpener.java @@ -0,0 +1,16 @@ +package edu.tongji.designpattern.DevideByPattern.FacadePattern; +//雪碧开瓶器,实现饮料开瓶器接口 +public class SpriteOpener implements DrinkOpener { + + @Override + /** + * @author ruanby + * @date 2019/11/2 + + * @return null + * @function 打印要开的饮料信息 + */ + public void Open() { + System.out.println("class SpriteOpener:method Open:服务员为您打开了雪碧!"); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/CustomerCriteria.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FilterPattern/CustomerCriteria.java similarity index 63% rename from DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/CustomerCriteria.java rename to DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FilterPattern/CustomerCriteria.java index 2e0815c..b73fa80 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/CustomerCriteria.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FilterPattern/CustomerCriteria.java @@ -1,6 +1,8 @@ -package edu.tongji.designpattern.ClassDesign.Person.Filter; +package edu.tongji.designpattern.DevideByPattern.FilterPattern; -import edu.tongji.designpattern.ClassDesign.Person.Customer; + + +import edu.tongji.designpattern.CommonClass.Customer.Customer; import java.util.List; diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/NonVIPCustomerCriterira.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FilterPattern/NonVIPCustomerCriterira.java similarity index 73% rename from DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/NonVIPCustomerCriterira.java rename to DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FilterPattern/NonVIPCustomerCriterira.java index be1d873..900e054 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/NonVIPCustomerCriterira.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FilterPattern/NonVIPCustomerCriterira.java @@ -1,6 +1,8 @@ -package edu.tongji.designpattern.ClassDesign.Person.Filter; +package edu.tongji.designpattern.DevideByPattern.FilterPattern; -import edu.tongji.designpattern.ClassDesign.Person.Customer; + + +import edu.tongji.designpattern.CommonClass.Customer.Customer; import java.util.stream.Collectors; @@ -15,7 +17,7 @@ public void meetCriteria() { @Override public boolean isMetCriteria(Customer customer) { this.meetCriteria(); - for (var item: this.customerList){ + for (Customer item: this.customerList){ if (item == customer) return true; } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/VIPCustomerCriteria.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FilterPattern/VIPCustomerCriteria.java similarity index 73% rename from DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/VIPCustomerCriteria.java rename to DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FilterPattern/VIPCustomerCriteria.java index 1bcce0a..f80fe91 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Person/Filter/VIPCustomerCriteria.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/FilterPattern/VIPCustomerCriteria.java @@ -1,6 +1,8 @@ -package edu.tongji.designpattern.ClassDesign.Person.Filter; +package edu.tongji.designpattern.DevideByPattern.FilterPattern; -import edu.tongji.designpattern.ClassDesign.Person.Customer; + + +import edu.tongji.designpattern.CommonClass.Customer.Customer; import java.util.stream.Collectors; @@ -15,7 +17,7 @@ public void meetCriteria() { @Override public boolean isMetCriteria(Customer customer) { this.meetCriteria(); - for (var item: this.customerList){ + for (Customer item: this.customerList){ if (item == customer) return true; } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/DishIterator.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/IteratorPattern/DishIterator.java similarity index 76% rename from DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/DishIterator.java rename to DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/IteratorPattern/DishIterator.java index e3faa29..c57d3e4 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/DishIterator.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/IteratorPattern/DishIterator.java @@ -1,7 +1,9 @@ -package edu.tongji.designpattern.ClassDesign.Business.Iterator; +package edu.tongji.designpattern.DevideByPattern.IteratorPattern; -import edu.tongji.designpattern.ClassDesign.Order.Order; -import edu.tongji.designpattern.ClassDesign.Tools.Dish; + + +import edu.tongji.designpattern.CommonClass.Order.Order; +import edu.tongji.designpattern.CommonClass.Other.Dish; import java.util.List; @@ -18,7 +20,7 @@ public DishIterator(Order order, List dishes){ @Override public boolean hasNext() { - return position < (lst.size() - 1); + return position <= (lst.size() - 1); } @Override @@ -32,8 +34,8 @@ public Dish getNext() { @Override public void setPosition(int i) { - if ( (i < lst.size() - 1) && (i>=0) ){ - position = i-1; + if ( (i <= lst.size() - 1) && (i>=0) ){ + position = i; } else { System.out.println("out of bound"); diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/MyIterator.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/IteratorPattern/MyIterator.java similarity index 59% rename from DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/MyIterator.java rename to DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/IteratorPattern/MyIterator.java index 803edee..7b46175 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/MyIterator.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/IteratorPattern/MyIterator.java @@ -1,6 +1,4 @@ -package edu.tongji.designpattern.ClassDesign.Business.Iterator; - -import java.util.*; +package edu.tongji.designpattern.DevideByPattern.IteratorPattern; public interface MyIterator { boolean hasNext(); diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/OrderIterator.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/IteratorPattern/OrderIterator.java similarity index 73% rename from DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/OrderIterator.java rename to DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/IteratorPattern/OrderIterator.java index d158f81..de70f50 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/Iterator/OrderIterator.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/IteratorPattern/OrderIterator.java @@ -1,8 +1,9 @@ -package edu.tongji.designpattern.ClassDesign.Business.Iterator; +package edu.tongji.designpattern.DevideByPattern.IteratorPattern; -import edu.tongji.designpattern.ClassDesign.Order.Order; -import edu.tongji.designpattern.ClassDesign.Order.OrderAggregate; -import edu.tongji.designpattern.ClassDesign.Tools.Dish; + + +import edu.tongji.designpattern.CommonClass.Order.Order; +import edu.tongji.designpattern.CommonClass.Order.OrderAggregate; import java.util.List; @@ -19,7 +20,7 @@ public OrderIterator(OrderAggregate agg, List lst){ @Override public boolean hasNext() { - return position < (lst.size() - 1); + return position <= (lst.size() - 1); } @Override @@ -42,8 +43,8 @@ public Order getCurrent() { @Override public void setPosition(int i) { - if ( (i < lst.size() - 1) && (i>=0) ){ - position = i-1; + if ( (i <= lst.size() - 1) && (i>=0) ){ + position = i; } else { System.out.println("out of bound"); diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/InterPhoneChannel.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/MediatorPattern/InterPhoneChannel.java similarity index 89% rename from DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/InterPhoneChannel.java rename to DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/MediatorPattern/InterPhoneChannel.java index f142211..bc1c856 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Tools/InterPhoneChannel.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/MediatorPattern/InterPhoneChannel.java @@ -1,7 +1,8 @@ -package edu.tongji.designpattern.ClassDesign.Tools; +package edu.tongji.designpattern.DevideByPattern.MediatorPattern; -import edu.tongji.designpattern.ClassDesign.Person.*; -import edu.tongji.designpattern.ClassDesign.Person.Employee; +import edu.tongji.designpattern.CommonClass.Other.*; +import edu.tongji.designpattern.CommonClass.Employee.Employee; +import edu.tongji.designpattern.CommonClass.Employee.*; import java.util.ArrayList; import java.util.List; diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/PrototypePattern/Memento.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/PrototypePattern/Memento.java new file mode 100644 index 0000000..a0db9e2 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/PrototypePattern/Memento.java @@ -0,0 +1,38 @@ +package edu.tongji.designpattern.DevideByPattern.PrototypePattern; + +/* + * 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; + } + + //根据index获取备忘录中存储的订单的函数,最终会返回一个orderClone + 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/DevideByPattern/PrototypePattern/OrderClone.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/PrototypePattern/OrderClone.java new file mode 100644 index 0000000..96ae35a --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/PrototypePattern/OrderClone.java @@ -0,0 +1,60 @@ +package edu.tongji.designpattern.DevideByPattern.PrototypePattern; + +/* + * created by zhujitao + * 2019/10/22 + * 原型模式里面的例子,使用了原型模式 + * */ + + + +import edu.tongji.designpattern.CommonClass.Items.Item; +import edu.tongji.designpattern.CommonClass.Order.Order; + +import java.util.ArrayList; +import java.util.List; + +public class OrderClone implements Cloneable{ + + //下面是order中需要记录的信息,在这里存储下来,然后将对象存入备忘录中 + private List 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/DevideByPattern/ProxyPattern/MenuSource.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/ProxyPattern/MenuSource.java new file mode 100644 index 0000000..661c47f --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/ProxyPattern/MenuSource.java @@ -0,0 +1,12 @@ +package edu.tongji.designpattern.DevideByPattern.ProxyPattern; + + +/** + * @created by Cheng + * 资源类:假设点菜机上面的图片文件等资源有一个远程存放库 + * 用代理模式来减少访问带来的消耗 + */ +public interface MenuSource { + //资源的显示函数 + void show(); +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/ProxyPattern/ProxyMenuSource.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/ProxyPattern/ProxyMenuSource.java new file mode 100644 index 0000000..903494b --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/ProxyPattern/ProxyMenuSource.java @@ -0,0 +1,33 @@ +package edu.tongji.designpattern.DevideByPattern.ProxyPattern; + +/** + * @created by Cheng + * 代理资源类:用一个远程代理类来代替RealMenuSource来加载资源 + * 减少了RealMenuSource对象加载占用的内存 + * 属性: RealMenuSource对象以及资源文件source + * 方法: 资源显示函数,在里面生成RealMenuSource对象 + * + */ +public class ProxyMenuSource implements MenuSource { + private RealMenuSource realMenuSource; + private String source; + + public ProxyMenuSource(String source){ + this.source=source; + } + + /** + * @description: 若RealMenuSource对象没有初始化资源文件则初始化资源文件 + * 否则直接加载资源文件显示 + * @Param: + * @return: + * @author: Cheng + **/ + @Override + public void show() { + if(realMenuSource==null){ + realMenuSource=new RealMenuSource(source); + } + realMenuSource.show(); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/ProxyPattern/RealMenuSource.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/ProxyPattern/RealMenuSource.java new file mode 100644 index 0000000..008fc9e --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/ProxyPattern/RealMenuSource.java @@ -0,0 +1,45 @@ +package edu.tongji.designpattern.DevideByPattern.ProxyPattern; + + +/** + * @created by Cheng + * 真正资源类:模仿真正的资源加载过程 + * 属性:资源source + * 方法:初始化函数默认加载资源 + * loadFromDisk()函数加载资源 + */ +public class RealMenuSource implements MenuSource { + private String source; + + /** + * @description: 构造函数,初始时要加载资源文件 + * @Param: String source + * @return: + * @author: Cheng + **/ + public RealMenuSource(String source){ + this.source=source; + loadFromDisk(source); + } + + /** + * @description: 显示的过程函数 + * @Param: + * @return: + * @author: Cheng + **/ + @Override + public void show() { + System.out.println("Show"+source); + } + + /** + * @description: 加载资源的过程函数 + * @Param: + * @return: + * @author: Cheng + **/ + private void loadFromDisk(String source){ + System.out.println("Loading"+source); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/CheckOutState.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/CheckOutState.java new file mode 100644 index 0000000..7a92660 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/CheckOutState.java @@ -0,0 +1,30 @@ +package edu.tongji.designpattern.DevideByPattern.StatePattern; + +import edu.tongji.designpattern.CommonClass.Customer.Customer; + +/** + * @created by Cheng + * 结账状态类:顾客的结账状态类 + */ +public class CheckOutState extends CustomerState{ + + /** + * @description: 判断顾客是否处与结账状态 + * 如果是,输出顾客状态,如果不是,自动进入下一个状态就餐状态并输出状态 + * @Param: Customer customer + * @return: + * @autho: Cheng + **/ + @Override + public void getState(Customer customer) { + if(customer.getTime()<40){ + System.out.println("顾客现在状态是结账状态"); + }else{ + //跳转进入离开状态 + customer.setState(new LeaveState()); + customer.getState(); + } + + + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/CustomerState.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/CustomerState.java new file mode 100644 index 0000000..93c5dc7 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/CustomerState.java @@ -0,0 +1,14 @@ +package edu.tongji.designpattern.DevideByPattern.StatePattern; + +import edu.tongji.designpattern.CommonClass.Customer.Customer; + +/** + * @created by Cheng + * 顾客状态类:一个返回顾客状态的抽象类 + * 状态:点单状态->等待状态->就餐状态->离开状态 + * 根据一个参数(目前设为时间)来得到顾客当前状态的信息 + * 基于状态模式,起始状态是点餐状态,即OrderState类 + */ +public abstract class CustomerState { + public abstract void getState(Customer customer); +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/EatState.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/EatState.java new file mode 100644 index 0000000..1bc4e25 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/EatState.java @@ -0,0 +1,30 @@ +package edu.tongji.designpattern.DevideByPattern.StatePattern; + +import edu.tongji.designpattern.CommonClass.Customer.Customer; + +/** + * @created by Cheng + * 就餐状态类:顾客的就餐状态类 + */ +public class EatState extends CustomerState { + + /** + * @description: 判断顾客是否处与就餐状态 + * 如果是,输出顾客状态,如果不是,自动进入下一个状态就餐状态并输出状态 + * @Param: Customer customer + * @return: + * @autho: Cheng + **/ + @Override + public void getState(Customer customer) { + if(customer.getTime()<30){ + System.out.println("顾客现在状态是就餐状态"); + }else{ + //跳转进入结账状态 + customer.setState(new CheckOutState()); + customer.getState(); + } + + + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/LeaveState.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/LeaveState.java new file mode 100644 index 0000000..b754ada --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/LeaveState.java @@ -0,0 +1,21 @@ +package edu.tongji.designpattern.DevideByPattern.StatePattern; + +import edu.tongji.designpattern.CommonClass.Customer.Customer; + +/** + * @created by Cheng + * 离开状态类:顾客的离开状态类 + */ +public class LeaveState extends CustomerState { + + /** + * @description: 输出顾客状态为离开状态,因为这是最后一个状态,不用跳转 + * @Param: Customer customer + * @return: + * @autho: Cheng + **/ + @Override + public void getState(Customer customer) { + System.out.println("顾客已离开"); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/OrderState.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/OrderState.java new file mode 100644 index 0000000..94ac09a --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/OrderState.java @@ -0,0 +1,29 @@ +package edu.tongji.designpattern.DevideByPattern.StatePattern; + +import edu.tongji.designpattern.CommonClass.Customer.Customer; + +/** + * @created by Cheng + * 点单状态类:顾客的点单状态类 + */ +public class OrderState extends CustomerState{ + + /** + * @description: 判断顾客是否处与点单状态 + * 如果是,输出顾客状态,如果不是,自动进入下一个状态就餐状态并输出状态 + * @Param: Customer customer + * @return: + * @autho: Cheng + **/ + @Override + public void getState(Customer customer) { + if(customer.getTime()<10){ + System.out.println("顾客现在状态是点单状态"); + }else{ + //跳转进入等待状态 + customer.setState(new WaitState()); + customer.getState(); + } + + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/WaitState.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/WaitState.java new file mode 100644 index 0000000..d286fce --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StatePattern/WaitState.java @@ -0,0 +1,30 @@ +package edu.tongji.designpattern.DevideByPattern.StatePattern; + +import edu.tongji.designpattern.CommonClass.Customer.Customer; + +/** + * @created by Cheng + * 等待状态类:顾客的等待状态类 + */ +public class WaitState extends CustomerState{ + + /** + * @description: 判断顾客是否处与等待状态 + * 如果是,输出顾客状态,如果不是,自动进入下一个状态就餐状态并输出状态 + * @Param: Customer customer + * @return: + * @autho: Cheng + **/ + @Override + public void getState(Customer customer) { + if(customer.getTime()<20){ + System.out.println("顾客现在状态是等待状态"); + }else{ + //跳转进入就餐状态 + customer.setState(new EatState()); + customer.getState(); + } + + + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/AddDishStrategy.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/AddDishStrategy.java new file mode 100644 index 0000000..1e946da --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/AddDishStrategy.java @@ -0,0 +1,12 @@ +package edu.tongji.designpattern.DevideByPattern.StrategyPattern; + +import edu.tongji.designpattern.CommonClass.Other.*; +import edu.tongji.designpattern.CommonClass.Order.*; + +public class AddDishStrategy implements OrderRecordingStrategy { + @Override + public Order execute(Dish dish, Order order) { + order.addDish(dish); + return order; + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStrategy.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/DropDishStrategy.java similarity index 54% rename from DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStrategy.java rename to DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/DropDishStrategy.java index bd5ef41..ff53f18 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStrategy.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/DropDishStrategy.java @@ -1,9 +1,10 @@ -package edu.tongji.designpattern.ClassDesign.Business.OrderRecording; +package edu.tongji.designpattern.DevideByPattern.StrategyPattern; -import edu.tongji.designpattern.ClassDesign.Order.Order; -import edu.tongji.designpattern.ClassDesign.Tools.Dish; -public class DropDishStrategy implements OrderRecordingStrategy{ +import edu.tongji.designpattern.CommonClass.Order.Order; +import edu.tongji.designpattern.CommonClass.Other.Dish; + +public class DropDishStrategy implements OrderRecordingStrategy { @Override public Order execute(Dish dish, Order order) { if (order.removeDish(dish.getDishID())){ diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderConfirmStrategy.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderConfirmStrategy.java new file mode 100644 index 0000000..712db30 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderConfirmStrategy.java @@ -0,0 +1,19 @@ +package edu.tongji.designpattern.DevideByPattern.StrategyPattern; + + +import edu.tongji.designpattern.CommonClass.Order.Order; +import edu.tongji.designpattern.CommonClass.Other.Dish; +import edu.tongji.designpattern.DevideByPattern.IteratorPattern.DishIterator; + +public class OrderConfirmStrategy implements OrderRecordingStrategy { + @Override + public Order execute(Dish dish, Order order) { + DishIterator iter = (DishIterator) order.createIterator(); + while (iter.hasNext()){ + Dish item = iter.getNext(); + System.out.println("confirm dish "+item.getDishID()); + } + order.setTypeToDetermined(); + return order; + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderCreateStrategy.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderCreateStrategy.java new file mode 100644 index 0000000..949fd3c --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderCreateStrategy.java @@ -0,0 +1,12 @@ +package edu.tongji.designpattern.DevideByPattern.StrategyPattern; + + +import edu.tongji.designpattern.CommonClass.Order.Order; +import edu.tongji.designpattern.CommonClass.Other.Dish; + +public class OrderCreateStrategy implements OrderRecordingStrategy { + @Override + public Order execute(Dish dish, Order order) { + return new Order(); + } +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderRecordingStrategy.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderRecordingStrategy.java new file mode 100644 index 0000000..527a891 --- /dev/null +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/StrategyPattern/OrderRecordingStrategy.java @@ -0,0 +1,9 @@ +package edu.tongji.designpattern.DevideByPattern.StrategyPattern; + +import edu.tongji.designpattern.CommonClass.Order.*; +import edu.tongji.designpattern.CommonClass.Other.Dish; + + +public interface OrderRecordingStrategy { + Order execute(Dish dish, Order order); +} diff --git a/DesignPatternProject/src/edu/tongji/designpattern/Main.java b/DesignPatternProject/src/edu/tongji/designpattern/Main.java index 2fff527..5e4cc72 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/Main.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/Main.java @@ -1,32 +1,166 @@ package edu.tongji.designpattern; -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.Tools.InterPhoneChannel; import java.util.ArrayList; import java.util.List; + public class Main { + //// 合并的时候这里写单元测试,加上自己的函数 + public class Debug{ + public class Eyisheng{ + + } + } + + /* + 我定义了一些 Enum type,修改了你们的参数,但是输出时没有改 + */ public static void main(String[] args) { - System.out.println("hello world"); - ArrayList arr = new ArrayList<>(); - Manager manager = new Manager("manager"); - arr.add(manager); - Waiter wt1 = new Waiter("waiter 1"); - Waiter wt2 = new Waiter("waiter 2"); - arr.add(wt1); - arr.add(wt2); - InterPhoneChannel phone = InterPhoneChannel.getInstance(arr); +//test for StatePattern + //初始时根据时间不同来让顾客的状态发生变化 + //感觉需要有一个更好的办法 + //顾客的点餐、等待、就餐等状态之间的变化需要的参数应当不是同一个 + //或者是同一个参数(时间),但如何传、由谁传递需要决定 +// Customer customer= new Customer(); +// customer.setTime(8); +// customer.getState(); +// customer.setTime(9); +// customer.getState(); +// customer.setTime(11); +// customer.getState(); +// customer.setTime(21); +// customer.getState(); +// customer.setTime(31); +// customer.getState(); +// customer.setTime(41); +// customer.getState(); + + + + +//test for BridgePattern + //注册不同的职工来调用同一个接口API的不同实体类 +// Employee waiter1 = new Waiter("waiter1",24,new FloorAirConditioner()); +// Employee manager = new Manager("waiter2",25,new HangingAirConditioner()); +// +// waiter1.changeTmp(); +// manager.changeTmp(); + + +////test for CompositePattern +// //注册的四名顾客 +// Customer customer1=new Customer("张先生", Gender.MALE,VIPType.VIP); +// Customer customer2=new Customer("张女士", Gender.FEMALE,VIPType.VIP); +// Customer customer3=new Customer("张先生", Gender.MALE,VIPType.NONVIP); +// Customer customer4=new Customer("张女士",Gender.FEMALE,VIPType.NONVIP); +// +// //通过是否为VIP将VIP顾客和非VIP顾客加入不同的List里面 +// //感觉需要更好的划分方法(或者应该有判断语句来自动划分顾客种类? +// customer1.add(customer2); +// customer3.add(customer4); +// +// System.out.println(customer1); +// System.out.println(customer3); +// +////test for ProxyPattern +// MenuSource source=new ProxyMenuSource("pictureOfDish.jpg"); +// //资源文件需要从磁盘加载 +// source.show(); +// System.out.println(" "); +// //资源文件不需要从磁盘加载 +// source.show(); + + +//test for BuilderPattern +// ComboBuilder comboBuilder1= new ConcreteComboBuilderA(); +// ComboBuilder comboBuilder2= new ConcreteComboBuilderB(); +// Director director1 =new Director(comboBuilder1); +// Director director2 =new Director(comboBuilder2); +// Combo comboA=director1.construct(); +// Combo comboB=director2.construct(); + - var res = manager.notifyWaitersToService(); - System.out.println(res); + ////<<<< eatamath debug +// ArrayList arr = new ArrayList<>(); +// Manager manager = new Manager("manager"); +// arr.add(manager); +// Waiter wt1 = new Waiter("waiter 1"); +// Waiter wt2 = new Waiter("waiter 2"); +// arr.add(wt1); +// arr.add(wt2); +// +// InterPhoneChannel phone = InterPhoneChannel.getInstance(arr); +// +// var res = manager.notifyWaitersToService(); +// System.out.println(res); + //打折的测试 + //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/out/production/DesignPatternProject/META-INF/DesignPatternProject.kotlin_module b/out/production/DesignPatternProject/META-INF/DesignPatternProject.kotlin_module deleted file mode 100644 index 2983af70661ad375cc499ebc4da5a68ca46c532e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16 RcmZQzU|?ooU|@t|egFVe02KfL 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 deleted file mode 100644 index 8c123190635e593e3211a5cbed1380d6343f78e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1002 zcmbVLQBM;=5dO9;JvdIQ6cj;s{=NrrjQ2juc(H;dymVsI$17}k*!J+6q5N4z zD*nPS+U-b@gt3k;uT&_cRhQ8w~ArR=D& z*Jmg-wU7*zj*8@IG8stIv#95Ni`gPX6GQWu29aF8#0rfvpL{*c2YrZS7Wt_%K!PRvlYm8-lupXSFa zKIH*C>;!m*=KO_GveuPmS9X))-x5T@gFnC@ zB~D`wDjtHDoqca+-|Rf*{p0lwKnqJAMle-F8PgtSFzce}VveD*E0s+47+NbG5v4(* zRqsv)k+8C-?s<|3qk?vyTYHdE!MQM2tKf=DO6{z68Om)P35JP|RN^#^uZ6kf*L`9d z9Ubz1mm4|6Iay9_rDZrN)@?tvq-t%@)^W^LL{Z&H6Q7w#n4H^TC>aqlY!%b|IRS$! z9z>WX^x@LVa31eMrzR9fayY}>9}PF|_<;MU!1XbYaTg0d7Exz7F63a5nHUcLr|tnz-yA>Erk&bE$HHKlc4>rm3vfVt1eeY#p*_M5#md_H z3)o|puhHpctV?fdbO&a?sxS(l5Y=N0`BdZ 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 deleted file mode 100644 index f7525dc0bc30d2e2dd4199d1e9bf50c4b33557a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 764 zcmbV~PfNo<5XIlNwP|ClwQBu)@un3Fi0DD_U{pkk3W}cBWT;!3M0S(n*Ahg*gCD>T zB~D{N)Ju@ShWB>zo6KY0KVIJe>|oi(7^dr}V8+HQ+7{+4%nMZaRHTx9ft}SZ1*x0F zQLnGufQ;%z_cBRHN3J)J#vEprdqLX7k$WQ*U+u143sk%~Ac4uQis&p2Z%JRt+W|YR zZtTm!wbW{)bF-4%DI;)NtlL3qm}-pc#bGF;!1XlAgwAz9I=6NO%9?zEtzyWZ0|;33 zKz^F=|CU!ru*_S@*op>$A%Bx%fwuo0_i?Pf)Fg388Y{dD3A{tF_^h$oXIgwN58y{3jFSRM}~20Ai~6tRWzDNKNLoeqB)Oap(DRH<;L_=mwzs_QIUVeC55{AaxRsc8ow{i zxZ55wlzJ)@4E2GG#A!0S7W$H3Ps!65sDMw0TuWp$a2TL6u+k^^=}6 zhWELOx+e%jGtBfoR=Ss%Sj{YIKj(h#=+hozhi*rit_)BB$%P7yRkA*lU8HZVv-=aQ zv-cf^ujwS0#wTg0La9}_^wh|=eLEc<9+O3hG^dJ8{L Y`p0)E3gTFXWqT>d%h+^q$XCG1UxW1-fdBvi 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 deleted file mode 100644 index 817e0bb1384c7d35faf7347bd55f45cef1d2502e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 750 zcma)4%TC-d6g{2^^CCRUYj{=N!60E#RbtVK1p{<5Do7w$dlGB#C=;VNLHrhrs!|vI zfPNI>I3OWbB#U!>@AWz7+VTIVzyAOn;&TTLblaH1x`z!9n@wyru`STbbfnF_&IG;< zbX>^XrlYZuv36#Z-l;s-St|R9a_*!o$qSu1o5~wy*!nIoWwY4RzgDB4``xlcl7rZ| zTY-aW+$(DnCr?NrweiEGCO;B5+^NQXKltu7-TOAy0&@eC>R-iVsIx0IOjubQ*hnSU zDlrwD(+CAlEB(EX#uAwK7BW%kNS+VJI?97Dd@v0@ zr8)v{%2nWf%Sda+8U$yWCC)KZ%xjF@-XDmb_>G!}x`&{*$MmtJ%oEp3;gEtYO13G{ h!6! zS#HbnZWc?pBg=a_-cRELET^!N!G~BC<3}0#+?8cb$2}bd9qS4`o?o_og@vMBuA8Cf zRt_DrYzI!otyy7c`>t82T0yWLnamyWj@M-ctr~<1gT+JZTg$A6PSq?rLCA}AiSbrg z_icqj$Ms5gOb&`>kh6}c!!|nxkn1g zf>);4fuiHu+x4S8+ka^7RcRS6diz%Ok>xvbZWxo{ffJCtJMMe+fT%%WZnB$F`Ei+AGPfzD%3;e19JNj1cDKl_ZC1z-p-}gI+ok%;#E1s9YPl72 zXYbJ7mr?!Uys^6^&Uba|xY^T-)S7ZjUftif?>jPgLo)hJyqhB2z!hv57{aiDOSo*{ zHH_)FZ{PtwHn53L6wI!E;pI$o~$NS1*u|Maye1 zkj&4^@dl5-(nG`R;s>2;Ka$8GjVyOEMFT`0!~~fqcsm&*()UfCBt{geXg5hs3F-yo znikO(tGq_r6sEa~wk_g_&shFB#XN`h3O#H@`6=||GbFWNco(bcjr>L;_851p!G4`S zJxGk+WqSnSmoNvjYrva$s z-)#i@^p@bIxFK1EA91y#iWxco%x0a4lN?U#$jG>5{rmzZ+kJ~N7h71DS}I5JQ)+OH l{5Ko?XX0PN=oFu7foX_m@XUV(_jM7>T;stssZ#3n&cE;-925Wm 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 deleted file mode 100644 index 30d417a27d46e9de4bd821e79914b907d739b1d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2400 zcmb_dO>^5+6g^K;qS#hG+k~_skdh`iZX2a(n*vTl)1;v(&IefU?KJ@>xnfByaRF95gkSsH`5 zp27eY<#IzVH#4|}CAr+z@j(h7;-fy~(^$qGXDMo{lvE)p8txe8DbN z&B*th1J^9sq3d`RD~jyEGuO&i7_P@Ab0;X-L9(toPGCD$WapWq97X~|g#+tb%dAFj z*(|tW#1E+=6IoF;um#rJJ};jdGQYx& zdnBN(`6bdGEV!P%T|L~hgU_wKGA$zof8Q!UvI1A`Yep@4;)Vhn-I2Ig4Vg6z%}q*d zMSe}w`i^CewSpW~>OepIk9D4@1yURRi4|_!-?8axcJ8r2e=)N5zuvMcH8pg{j*{;; zvvb`^(llBuKg|Sd)gZ7vVq`))+HG`Q%Wg^v!WA&+)o7x?oikuH!U=kw@$m?kEzdD` z_73cQImAD88oMj0v&&mY^%kE=dg@a2tHHj#;l_g)YgW%VFR2^2fOP}I7%^}T=MB7t zaUJ&!Y~T|E55N<%aN3iu*58(^3tullE2!te!FRiR|&fa(V_@uPUDQ(EXlgo8wH0RL+&aCx^)1ATM`2_i zGJwJ`An|s6b2o6ks2Bydb;toa7lXB$d4?*|smyz9G}{EjDA#l18%TG<`-he22$y(g z4}!>0p~&X)FF=v~rEN5RALE{_=6fG)7jTjL3GRO6Q|0rW+$)HjcmYK&YEFFtEq6t3 zuX6i4Jyg6c{h)IlgoX@KFo@evoFQf&#w2kk`E@GENZ)t4lQEK!h~Fe9g&tsR-6FXq zEHBaa9;UfUZd=SFea3UoN#;4!*XUs*N>8C{&!DNl@ms>GH})Hg(UZL6HT28$>47qK zmluMZKCUwLH#ExBi!G_2VnV{?z98OX?Mq7V8odhshJO49`bJVOkru}d&=HCNW*ed~ zS;8%_Tv>iXV6lk+%g7RrC!hu&uwn_nlvI@w_!$@5sHEloS5|x+bK<5!ra@sKR{Am( zo8d3p1i#b-uR)oX=$-VV2pr-iEBh6ThH8H=&hS`7>ndHJ@}pDft>ZK2NOc z#Jmw>$__GH4O715I1vI;eWFk5e7}OLHFT3tS$z)+Q>30sJX%Q;Z#5OslO!BkrF7Ri df?vXD4^F)?c;=14{apl;Su&XOFk_wz{{gw4D`x-z 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 deleted file mode 100644 index a48e2a2d91fded279b69ad9130416860e5f33b39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 983 zcmbtT+fLg+5IvKdi%Cnk_1+5J2t-{#m3RoM)Dl&y6oJ&Byl?E4*~r*vcU_e);WyeB zka*|^^rI@qHm#yQIpSsK?ChR1voo{5|J?opaDcZy8d&%76wf?7_wd5QOG4{VC)#}= z)VI20LgOe66=7+p6Lp-OPn0>8lbAg#!!(fbSQ?%0@0|^IrY+%ksKQLRG>N8Kgv#nD zxsc8&lZc~OT01CQ;!|c>)mm|4LS??HAT^;*BJnW{2il&EoRLmNmwke#zN;W}9QJCf zn)Yd$##ZDq{c40Fhcc6XcYX?2D&$~m%L?w#2r%eFOSg953+NDx59&jN9b}EHVP) z$9TePPX5ATb+%q_=Nh%%4~8}5be}C4H5ug+8|Afo2_|3(okG^bGFFP5Rtxsp9Winn AX#fBK diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStrategy.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Business/OrderRecording/DropDishStrategy.class deleted file mode 100644 index e91771ea46db77e6473d2f9fff3421e604795871..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1737 zcmb_cT~iZD6g>?w17j3L@oPoH3X%xR2)gPTKM7K6RamwRg;o00%=CtV$#iO_hmzVK zqWcT>Rri6d^1&bAkFq>7K?xhyilqbIo1rlJ+O7Em)> z)2<9wW#p&lU1iR!`?0`sO?io9blBMN9Z$u6BWy`yR1`YZK*sSxrgG+!n5c2=EJvP- zo+wvGo*y=xg-Ev+{CK@?B571(yCPtz7s^cxNZ%>6V3G3b+jx_jZI3BY*~CoG)t*2*YAIkxs;ReB3e3`#x>3u|_GP8M9UIl;tm=fh8EM=5+WDOn z42dY&tk}4NyPQ{#Q&r4bv=}F@%efOc-ISZEszX-aeU 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 deleted file mode 100644 index 1b3c137a7be68099b4d3d82246f6030dee6b6f34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2245 zcmbtV+j1L45Iti{T1#Hy5QhYD2{v(z9PF%P0)fZ`VkssLvU8C!Rq!;H26=61SG7BG zMPCAZ0k6P=DN+T+bH0I3p@1{HlCzFosZHf!=hEAK`b}&rol%fU8(CS|3=rX5m8%9|`1^UC-4w1x8DATLPJi-&6t< zHP=%cz0S4@HsyAkk~1~GA=_IraLs-o%;+6A6sXr!v*&2vYwfyDQ-yBJ>q@Ov;5n7H z48v+9a#ngFQNz%=7c^DyP&NFZ>3XerTk*Z`+@Mp}fz+ziFAG@ek!tibeScp{=U~(K z+o4l+!<}+EgNR7%zdZNiCJdLWRY%}zI@<(4nl{N(Aj=@AKwv2yM3Qmrp0<^AwukXw zJ9I9iuZDSQ*Sh!vPi3x!RsazdiN_3Xz7X|&B!#Qnfs%CpvH8hLw z<=q^59af*ftrtTbrcolJ1Qt_aBr;myR3lKV{~?^f?NZ9RJdESeHbKQSlN}jus7H(! z``kC&x0H_eXX)YDsL~)2>3Tnms(jS%(f+kq+x4CMf$M38Ovw%n@@0=6NcJn!e%zen|QqV8n%UM|#b+3TI-&^6_&fBu5Ml-4oQmP3Xs!!G?Z} ze?_+2byushg|7rI9s7S0H-QV!*W+V5&i9w?ijV9FXSN=Wr@3=D3(ncgzd`&G{eG2W zE)wQoUS(rQ1x(^BXI>S~aWuw%5G>1iY5o8s8wJxjs66pY{^9&j!Y<{s*}Psj!C K$GE@3&-owEotb<9 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 deleted file mode 100644 index 791e20c25a2a26fcd28d4f81f979d19dd2fd13b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 922 zcmbtSxlY4C5Pg%&A>8-XKu0Jr&`<gR+~GYKVO zyrp7!lwNhDJ`QfmcI#hADuQs(5R<^BX*}ZEJJb5dF)N<+jwS4){k|Z+zfijnk zd<54=zkH+qcM4A{!FEH{5SPrq~ zGZJHY{R#Bw+%=XJXRKhD-y{71#!=P?V;ES*dbODiE)88Q)xY!bW3-Sa1wX1Z~%uAV}ykjo0qCe z-k104cE4N!jM0e@MQ9TuK5|k7CY%RLP74vNQJEGgd#%h~hQQ8-NoWxWwephyH3)Syo)em-*3fzY!Zvm1 diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/AbstractAggregate.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/AbstractAggregate.class deleted file mode 100644 index dd821394a9c5997e83a9114bd0a47429e7f03074..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1443 zcmb_c+fEu$6kP`p1jf6f)?Tz%pw{W#RtSl;n$Tccqryk9FOrt z%u_MX#5|8+HG&rk!Mfurj2CLgfuVO?tF9L;$IU22cdcsEa67iCFmo=QEfzC5)`T4E zBhxCc5YAdn%gwQ2GPTFdMytZiSix$VZ##{WX%~%Bosr2xt8CQw4BHaF7Yw=YEk_|& zFe@G1Z8fVkORty?3A7E@HSMOpQ8ygtwHMNN?22jY>m|pvjk3F5t=eYQa82?_oNeB1 z_W?F8)ww@z(5O@hlFa*Z)Qx6U-znA1vYU~amBqQuy4jE^Jv~oXP#LPG5J~2_N`2Ti z8?6J8HNq?h$I<(H_3du|lVsogk3N0*lG)v-zTb5jz#D$|?5p^|8VoG6Z zaC6sf+vv*m)u3TS!#E})c&T9lSH)S=a1*yQ+{HbG>}9SRAI$ml$t&cK}&eMG*$_kpIc;g3gE#Xhi5N( diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/Order.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Order/Order.class deleted file mode 100644 index 3c2bc48ee8b1077a76ddf5382c4700427190ee18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2714 zcmb_eT~ixn6n-`dSqMvLfzpbtw$|DZpj(lT+8~t@s%QvWQY!Ux$?k;3kl^m7Q+|jS z{sFz|g?6kAcE<7ApWsh%9Q8T78}b1cf$`?e`*EJU@mSy;$7t{DqhMbC(1d_mnyr4=UGlgUo0E0oAtN!Rq+yx1>%U0o3^`Uxvkte+x2+Xvql=jt2uPA z*yLJ{=Q?v(s8-9ao~4h>ym*_lE4DYUAetIoXYh+vlid9|yJF>QJDZkMFgDBF8OT+O zMtR+EY*~k!F>lLepp%_>Zn`QRCrXy*?})@hsnO#^R%s)u(tX{aS!p>I(G=X`@hRmV zbOVw?HES_DJG{8b>>H*j8Y!4cb;jJJs|Xo21^niTu@uI!cB+r9!27w>QC&tKg+(ID z^{shE@#__1*H4Lx0*gdc3u~xVx3G$qTEskk?Ieqi#q2CoHp8nr3WT_$G~BJZ)Y*0Q zI#yrVt4~=QPyP>{)AhqQon0WP<%LbxbBv<5P%1fAiBg=-XJV~dbBfkITN*9lQ{Rv$ zN5iYQtm1)&b&P0u2_p&y{kO>Pf(6Gh_9S~6UdBZY=P<0{JT7Q>h!GW^XxP9b4WHsO z4WHu+4PW9b1$svbYE-iZ1J^Zdf>pQJ5%y?ur5fw$l}i;B-0X;|>B&$qcLKVuLLK62khnm1$ zhu{=Oj{$eLgD)HlPGjsCaI_tK@mTQqp&B!cQ^M}15jD7+) z!T_?g6kCl~kB=Q75y8WDo-s-|?(+->wjqy5s^cb^_^HBV$oMU7Vq}~a#sl;!SQ$Tn zrr6o}(l1uINc=f3FkC!(9TUhtuVXlDrB1W;`BZtKTmI_#A@ER&sc86i4Qf)Hi_mhrf zm<&`bPt%*0)EA-^QDr7b+9GNSt+M>9n73ETFw_ItNx4np@LKVXG%Ad5g|$-0d_NM# z9Jmrc(;cb1b~g;Q426|-hKaV86dlvNu!&|ktW*aB+)EA7G=}$f`N@4RB;evX5fL`k zL|+ev*rmAJGFFSW?XzqQv+XeIJ4C=gPg32MM=BF=*46uvo7dt_lu*DJ!@)rE{lC^B z_6{y#1*;k08pHNLfZbz%(_&~0vHMRbdZWl#hN&PskEd2eJW$4x7^jt?MeK`J{|i@b zVuN1UqwfZNGs|=&TcnJWXXHm~&tQ+P?UVIf(Ze{!rS1UvGG+9Em?WDmZz1n`MNyiq3B#SZRvej8qTGDkS{wp1c z7>$O{{wU+QmqkYOlWUWEa?W|~InQ~yKYxAw0pJN%Gf=UhBZs_(DGiG{#;_!gN|#N&e`Wj-12$Qw(4=@ z1?^&fDEg)oHo3pUBTwY&CsYG|KzYr-lQE=9Uf{)R4AcMM@+!Z>pvLb#>PMzdW8!f) zqDV?kIMSu2-@jZL2yF-5gVGR1tkI11df1Jc?h8-!%e=4wE23itE{QdqGEl%nhNu6% zPX@AhWZ(vF8W_iffk|si47AW0;oBp$%Tj3`zhkilh4gW(Ekb0o#5_rN|QaSG)lX$)8C zOi7HQW-^aa&^Mkj5QJScG{?g@~{G4Qj*GloO*DhN>u4Sk=p)R0rncp1JqjbMMU0U*CTKc!OtkRIppalNz21#BY^W{#anA)xD6H zGRdXRk~43W&f5Fu0@aR5N#Jf*Y5FoA^~v^RKWAjSYX&kumsSP41gn0ioWN0+(sAOA z&Ms7vl2e&3r1xZX(#fTBCsQanCF=}B(hU{awm_XmMQ$cUpH4!8IY9zzgCPr~-l!0$ zw1U8RT%^(miH^L_sbiQ!D(#srBmbG4lNn!EMlKUrccjy6Y(pEbzD_#KsVNsYZQV-v zduwDmkk0oe1-0kp26-F(n@$4l|H#1Qn}V$L%4n|c%#7`TKC18e^?&4wJ>mVd0=y4;MR57N30~2JtuYd zMzw#W2GQGPwfC0i-dmXaK6aQUwEP{<@Dy{oUrYn{W|w7~LhdFW@ET4JSw+PABeo(u F{tYr+)Kvfg diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Cook.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Cook.class deleted file mode 100644 index ae495ee60a4579ca012db8d9142798ed6101e99c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1455 zcmbtTT~8BH5IwgoUAim+V%HB8K}Gu^EFx%34T+SRm=tVMLgJITwAZq*-MiVnHTK=# zqR;Svi4Xn&f0S`tohsCv1qfu2wLk2fw7} zY#{^Fz>)M$vl_j=^oDc zXa*zDxt@=C7_^M~V}J$^lip)wts_AXkS-K|fF04l1T1=+eJ@5Rew=JOwy$A=EQ-e@ zrU-);1=BHBk^D@5&tTF$ht-3y`iJO4P$O3-PF15+9}+|9fHv#|4Nlp^lKN7k@$w>cU;>(Mr!c{BPU27^`>MH(#A+k#`1nDO$(=6UfFr%=WNs+$Zu0%+dKMlE#LCq?Ui4 I>;xYC1$@>v1poj5 diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Customer.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Customer.class deleted file mode 100644 index 808dde165cdef6f201c12dadd6a06ca613ccc911..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3381 zcmbVPTT|Oc7(Hu@1w!T;0;Ww%dP%_~xDW~nBwS(}0^wGmq@hz+5x9i0=kRisyjCLjOch31P`|a}Ye{cT=Fab|TFBY27gU8KS#FCgj z5szi@SkbYHH8ERn#<$pL!lsTbd?%J}>v)RqH9XVNiXENS{Gj1S9Ua)w@RN=%{H);@ z9o=I5RfEZ3Sj8ap3fx~c3!I^IdEY!VQ+d6I zxqT;P^T5fu2WA*@-%X|SW)NiLr_?(41J6yBtO%#&6lX3+RBVw!J9G}hqXT;T=1P#; zi|botMwrcoqqJ8jn6AyRP#eahV&J$u2vW*0wdRvo>!z*V3DpR=f5`2prbA9$)!&j8 zp~N0It`kl(bPrq%>)fcQ>f3s)-nSgMiWg9#DX z4OW48;+vsqy;w01R7^-jsEUE1(FtfS#q3bk^53{s40*Xc;-+n9oM11*OXV_Fqr5H8 z%Lgf8IVF>3(~M!Hw%}D6GtAd!b0HpcCE=C&Y_)ywpxT#uOFyGh%U8Tb+-25#UJ4Z8*` z^c(n8JQCo3K%}so!;kkhvDBX$d#>U#lWWVe6%er@S{V!#AxT(Q0u#Z~? zUZ7t?-ar8(44Il*{7Imk)S3xRwkl5n@!I zj+a`e^EISXmYW4?&t1}qv!CgNJP?cWE?G-qbymT-BaU!YcVyVBu??!It7D+H{aV%i z2DfQL_0Y`*h#?}j8_gp42p`LlHl!SBFUpZNpB!mN(%1q<#deFHU(wqR*+po)o;(3d zHoQS3`5H7tlS6ON_@}fR5Wl05p4Ski+fXyw&`uYhZu&YXf0GDEVu;?v+S{avZY8*b zVZ}48cwz!KR>9RJdxFsWs<2{ZtQbTNHj_Y3N|9TfCAf9!g>YRKWGv9nqHyhHJUs1W3&jV4G4y0 zimXXYDOonTD#G6P4z15bD2GnawvxPk3?cL^YAKK-h*KImDG><@m&{mzTB21KBOehx(>Ea_vn0_B&w<5fLDPfujGenpr!uc8qGmz(WJyFiiMCO9Tw%nrL-xP6XKA!1;cFZj9+luWgFTZ%2BoT(#!KpLwOUWrXP4?JxTJ&)op98O zg7lU9vNzy69+NLA!fxR6R+ERS(d&qEiYwKNNfMk4(}U9bcyfkn+#ja`LG?#W59>9; z8*zBdy59|&V&ByrFZ2U$YflSHSg|mNX#+bJc2QxtN`+CO3V7#0s8hcc&g8K-iANUp z@z}r<3so#zSiquzrxu=}X5kv<8Mel{1%|W`-(|{2CugEbLy_95_d+GwG#Y-FewdH- zxxRf&H-nUgxy4Xq}n!>#hEA4oqRv5!#o1fFb$tG7XTy;usq2f}}fZrQ& zTHdVR$db-QIlrC;%~3}utTmkyd$r3ntA>sFAqpVHbAjJTaoxNLbMT#Exo3~8za zuLZtkrhiQN$Nej(#U&6G?s;{W?t24tAKZLH->BReuK&MZZk4`9CViz0c|PocXAl66v0`sLjuR}32u)F&I|{yj|k4fjxzof-;vdg UIz|KEQUSlD^(3wD(Er{40D|2~ZvX%Q diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/EmployeeTitle.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/EmployeeTitle.class deleted file mode 100644 index e22cbc1c7765f2344a362595bd02f54826fa7522..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1259 zcmbtTZBNrs6n^g3tz9W^Wq=^QA?OB5ML{%M2+N#G9L(4`v-qiu>n!P7(sd;MD;q%y zv;^Xwh6y28HKc{SuVGTi2P)PW)Sbd^;aTYwL$1vCJ606<%>&ok=WVy?A39OQL*FWT zPP_d?nyi;RYzMwoY8`sP2hOW*wCpH! z{bnvZ5Ph>8G#szygs#ZdOQ`rxi}IR(C!?0;UEhs18K(ZhWjkA=UPtd;>PO0^SvgTB zq)73MaA^64*Soya7rNwkTKNHr*rY-0cF+kM{HZJYWnNf=711#RQ(_sX4XooK!{h&6 zDg$%aFmMC&2F76;m=H%=9Fs5^M$YFW>S9PVyuc??=}fk-=E~jyZ$w0Vy}yfcqjP<* zKO?>vHMg}&Pi2hWTViWQ&;Uph6Df&|l*9)Zn-!H4Qb7urFaw5J(&kBuPw#?#M(h;v zkEAhNrZXvhal+5xN)Nw=n6&Dqvh)RsQz!x-yMVt+7UK+sYq&1`)F(oTjH`4#Da zb0hg698s^6g0O*MW3?HDPk=!#T^q+%qbGAxym zq*O-L?{q2NrPZt}T@2avL>I$$J=w*meGDczowYzG(xPQ+L^;;uaT^)3#gP3CwKymi diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Filter/CustomerCriteria.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Filter/CustomerCriteria.class deleted file mode 100644 index 75d0c5921bc4aa8604359ebb1bab1cb89b7843bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 638 zcmb7C%T59@6g`CsG7h3BK9=r)ghNC zK_JG&1)JWUbMNiBkA8l=e*ieap$Cpe1x4(Yv0ugkgCAwqrBh`>Z5_i_IFZj%WKPE- zXF3d(z8)viWkxYv{c(3gHOhoblkr50k+Kx|B%M72TZ9A5$q)I?a}SfGk@k_#@Sspd^c*3Ouo-ye_3(;(w(q zaYm!rXa6YUeT6s{{UWbPU*Egu-E;1Fw?BV<{Q+PL>lvt6)o}-RH7sbjr^7%=zRWbT zIt5LMD5sH^^O}bH4C;$ryUws-^KN8?zUcK`tILOOPaHa7$OB>RdCqY7INq{e@nGl+ z>j@WK9#k1pjr#b!w%XdY-_)B7n{Q`Kb>w&vA2Mu}%o$Utdw!QQm zqa7{Iz5kBkY02(8M~>w=qGvV3z!kl!Ih){u?ROln14UQ{u436h7C8fXqQ6)& zr^?!I_jxBIiJQ|##eG(t!_{SwN~q9g}sCVpUkNft&C6&Vz80mMwJ zTQtj|kH9`7aSG)ltr#xRI~B)LgfHUq1iyhqysH<~@)smep-Oz>9R3RJ7-JL`u@uM2 z4MIuAhfwGNwDQ{W2~wZp@HE}oaShj`bX<=yD@fx8RwhE8Qz3FxzCk@GXvzuF$H>GB qU5yuW$?p_WM$}UW>IieqV=&1!E>0&oB!c9n=xfYylkAYi-2M%KTm#$y diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Manager.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Manager.class deleted file mode 100644 index 7fcf6234745881322973c6f7e0f8f7861af1985d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1712 zcmbtUZEw<06n-wRgO$Cysra&271&(WZ7zmo#xYEmfRcbS`o&z}$~wz!)0P?ji9cdr zG-f7#@T-YG%6M8TV;ReahS2t&p7Y%2dCuwm_51q|02|ndV+ac|M6o!8J2BkFy*N@x z$C1HO6w6WEXNYWSQggN#rc#9ie#ljw%Z6HZEKN4D={<%}&ZrB9(Sjz$i&nELtO~E{ z6qzU(HLmY*OLNzLFy!oOHp6;B)LW`!$i{)D)`hJ#q{$seSW?aD+_rbTkXjO!ZAi7q zC2t5T%Mce$Q#aZ|?C!W5oFT*ztL+m(QE8eC!IVod(lYDZaVgruadeS02!m_VA-INc zio&)DowA#DgJIYfvfhnNOT*FLw_kIOxY-q>EUZJV<|e1oZy6G0hu1z7x#_D*bkcJ~ zK?CwfD|n0~!|Fe@mtk#?s=Pl543o|F zuB85$`-T)<@3$^zOvNyCTlMNoJ@qtePX=Lgs&!=FvqIrrzE~=}e3Q>JY+efL94a)y zov~v0G}t`-wW!Z1UCtc;`#U8ro9-FRZE{a=Np6jwe2adNT&Q+l?{U2)Fh>W?5FI?A zD@`8abRDME76SAGBAKOcV4vwJ0EMn`FB(P|5hQ3m-O0iTMrlR)7{fSW&_RGnA8U!? z%>AFhM7+ST2cdLc`Vb6PE-oDFTR3%b;Z)zk>8|W`qUp*$Lp9l>mUY!KT=msnyLj)J zzI$Is(zodqLY@=J%vS_{A{;z&A2JicF9;nYe2mBuF$;Qa7@<2bPt9APrY-g$Cw+1^ pyj&I|(3`mBZ}HR%_K~;jAq#$EW#REK4u%zIT3Jpc^(vwK5 z6x0QxltfnS>k1w-NS*pV!)Al`LnCmV!O$}L+_whKkr@QsbBvm8`u^+4W$bg$cO8R{ z9DF+B6^2B!)r=A-Yn@k(ce`zdt@rchIyUW)`wTCO`n);hn%n0L*@ortW;p6{@4)QZ zymNTg6bC#TIxINSEn4TqArc|}$L$ESiX`q}by~<1z-RG diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Waiter.class b/out/production/DesignPatternProject/edu/tongji/designpattern/ClassDesign/Person/Waiter.class deleted file mode 100644 index 5ac043adaf98915fe85deddf238df7794a4160eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4062 zcmb_fjaCy!6#fQ~Kv>FOCAQTTTd|l}qZV5=R)qkH2KiOAYU{E)hJ|D&-Q94?leDi< zPt{XBrw`DF>ghL|B`gp$6qA$Lnc2DbyMJ@<%|HLX`5VCZ*hpd!H#>0@V|p0xL>?1* zHra_O+|sk#{XAJnVg~p0ayEgvB)Tx4uf1BaX=h64%OEJpydn?NaRag|%3y{DHH&=R zTK0*GHuKBgQd-i%cf9gmxWx|v zS7RQ->o;wC!tqykXg1oUvzC-9`B_a~i)WiNfeXzE8Y33C*Bs4$wj8S|5z}kH_Ecq$ zVzY;XnTUACa2WN$)>7bMlZM+*kI?J&^t8n{G;VTHRXs~iIXXdf)$a8hwJ?$_%uwuZ1oq#m( zT(c^IUYt98V%-_sTFzku*YHCEj)66-3(S82kewkda5xw5iX?%VLy5RMVpvL=;C4BfQDAR$#1H^kk7GgyvXm$|DC$50p~=Dy^!n z)W0>EfMUtFx%(2+CwJ!HBnh}W$s59m z#x#2fFYMK;8GqpEpaT zMYdVF1gZkVd)_yaP2lr)pTkME!-MRUTli&e4`)p8e0D?Vl+W=5SC7LJKq{Si4UrZv z(V~ae^b54T#F0Nj!p}Jl;t0oHjs}us(!Gu;JZ%Fv{`w34rBpj*RWE!os3efig?dd;}$h<)Z@Cu#V zq9?-x!?efgm<9Uk7U;v7$O7s2%ads!Pa85g8=39~Wod0>y7M97Q0-+MTi_d%`K4!Kb0@Dy#K_9xz=>(Of%g>>c>y3@2&ix7X| zqgF6}wi);HIB=OJyuz@#N-O7LCOZ)UbTD31xJXe2zO6$&i=c+yqK8nuaVX-o?uT}r zXg7#v0ZuQ`_1Lp{;?YEj3((NCmZZ2@5O@yJ>d8Qtx-G zM#^r2r^za-=3AU|IT;G$4oD#oi&g~32EQWzAHCUisMby!FvGIR-k%U11i zOTxy)s5+rW(yB2WX)(>TrW#QR8%!gu8(MrUlQt(cjrYpjd*imAjwE!;=B45ueb}Iv ztR|r?@3^@kp$(2lY||JX)gyzN#j6?BwzaGgX-%t^b=pxyy0oli8j)O}=t=qw=mxVh zQgnNAZC;X0+={drbl){%8d~d!Y8YCYzWmL)q1z`}XMJ9V(Y?JAe68jn!)!>f*pBhB z0WF(U2h!A3B+QhW?p3q8c=wbN500!Yqx`xgR6PWA{AxzA7r$ZJ`VcX{QNK1<`CWaer9F05H-@9@^3#$v)xnf%*-3Vp(5^IzeoHe3wX6hr zOtUO?*x}~VMK3J*Gmx_BMZ)8xz}ag~aqyjqDXbTS2=#q)5bFPWUVSjL3q8QAPY-@ zjf{eEOh`EVC~HN*Yq+Xl(g|#7c5TXC5Vb?9p633NaZSPNctggU3f{uo3ihC0Li3tp zt-^JYepo`t72U&aRtKEy`~J{IMEBGlK#>!*lu?Jl*tb6`|U z+4Q)CtN@j}YDv+?4XD~C=~BLA=&f~9XhKboYn?-EWPSh2bdz<9yV&MTu>JkqTHd%i zjq=DQXc5pCBURUXuAFA)GT>&DM^vjryUGlGhVxOGyXkmy>*2j1JK}9@2|a5Z#Z^#W zWr~ym_p7Z}0I&?zo=MBr##pX7&P2T>t(%c9jqXlJrmh&wL1tmP)h;6836;+6!8g0}hu^AV!g?2k=xfL33 zq_Lfwbte~KEgI<|Ob>0e*-xuN-Uv`Sz?xYpo_25$(m@BIL)0qF#MRVMI!t*7{0lTL zkWnS`_a+{|FXPCb`zUCU5eRs=9wn~FaNI=`1B@m7RL!FDSA_1Os*ku z{$+%_V$&Qpi?-fuoJGwPqCE9Gy=(H-_`L4z5|Z1#rlOjnIc%B5)+rR%6tP>|rWgL6 z#x@0dc!H5aYEIlb^_E{UB}Xk5w5=H*`8$p1LjPU(Uj-DCpT$&kZ^ z1MK}la{Ulm2~P+A3MAQ!el(F8QGRbU<8z$E7dV9*h~aB;>l>WLG~&3&e+s|j9R9$0 z2mEu8>7(3XOA#%rJ?S1%6$~m8*e>#B9w(?1eV(WPQx2=<@hoE$I&InoC8Rt+Iq6bI rx)iu#14W-J-Y2;NOsCatAE_&x0Yws-GDAUfX2I{M1u;%jSAh6`q{)E^ diff --git a/out/production/DesignPatternProject/edu/tongji/designpattern/Main.class b/out/production/DesignPatternProject/edu/tongji/designpattern/Main.class deleted file mode 100644 index 3e2fe6dbe230ec37bf4e3076d91a558df2056484..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1572 zcmb7EYflqF6g@*9Tgoa}1mA-17KD{5s1#8|5wsK%2n78!(6KDp?l!wyNq?4p03(S% zz`tZ-JhKZ?3{9{fI(P2Oz4zR6?#_>2-@XHQjHN7kG1>_W4>B0bqKJnE9%YfjsDbee zZe(F#Lhm0Nc#^@>EV?j}!DJRCOzFdCI%wL!a|15~(o?o;htmRyd|^!>IqOxGKzG@8 zRi#DQR3_k?32lfEy|7e_Wj+p%VRU$)A25Hht< zm#(ZS-WYEWW7d&D@G3%PEh|6pG_oj+84|nUn82g|ie8sC`-_8%0;$Hf=aQxA(5C^3F?G7ahrPe9Hyp2}RB4(evnyWH z-%@k7mbp_4HmWr;aUOjJW=y=qtU%YcavX1P*YlmKfmbG8V~&DFY97}_;9=WwXs?4V zH)rAv<^_uX6CW!fklBqS8Kjg)X3@ZciMM!XqKriixgv0_ZF1eZK+m56UE17HTj4R+ zN-GFeojQ3<9vsf3?ODql<&XodWSx}8v>bPHQXBe`!y0}0lRtxmtXBUyjWLu8oQSEm z$p5Cb&1_M@nhF=(Ae8PFgBv|!Ul>f=rwfM9U zelq{Qu!bAR@d4An4hTJB{O{+^;wreNhV~&oN5>cVpN^a+F48vR3%G>K+;!p#uF|7} zem>os6I_Mx z)-Vu3pO4|;8m=?Ghhsj#IKlX5WaK8f7{Ul{;Wq1xbAN|cl3BWO7x(y Date: Sun, 3 Nov 2019 20:00:43 +0800 Subject: [PATCH 4/4] local commit 2 --- DesignPatternProject/.idea/workspace.xml | 87 +++---------------- .../CommonClass/Customer/VIPType.java | 4 + .../CommonClass/Employee/Cook.java | 2 +- .../CommonClass/Employee/Manager.java | 2 +- .../CommonClass/Order/AbstractAggregate.java | 26 ++++++ .../CommonClass/Order/Order.java | 23 +++-- .../CommonClass/Order/OrderAggregate.java | 4 + .../CommonClass/Other/BroadcastType.java | 8 +- .../designpattern/CommonClass/Other/Dish.java | 32 +++---- .../MediatorPattern/InterPhoneChannel.java | 25 ++++-- .../src/edu/tongji/designpattern/Main.java | 22 ++++- 11 files changed, 127 insertions(+), 108 deletions(-) diff --git a/DesignPatternProject/.idea/workspace.xml b/DesignPatternProject/.idea/workspace.xml index bdaaae3..e7b70ec 100644 --- a/DesignPatternProject/.idea/workspace.xml +++ b/DesignPatternProject/.idea/workspace.xml @@ -2,84 +2,16 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Customer/VIPType.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Customer/VIPType.java index 5c130fb..ea8bddd 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Customer/VIPType.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Customer/VIPType.java @@ -1,5 +1,9 @@ package edu.tongji.designpattern.CommonClass.Customer; +/** + * @author steve + * @description customer VIP or Non-VIP + */ public enum VIPType{ VIP,NONVIP; } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Cook.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Cook.java index b467098..a31ee1f 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Cook.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Cook.java @@ -91,7 +91,7 @@ public void getMessage(String msg) { @Override protected void notifyChannel(BroadcastType broadcastType, String operation) { try{ - if (broadcastType == BroadcastType.ALL_EMPLOYEE){ + if (broadcastType == BroadcastType.ALL_WAITER){ } }catch (NullPointerException e){ diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Manager.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Manager.java index 94ddfbb..7ae4d24 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Manager.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Employee/Manager.java @@ -60,7 +60,7 @@ public boolean notifyWaitersToService(){ return false; return this.myInterphoneChannel.notify(this, "new service", - BroadcastType.ALL_EMPLOYEE); + BroadcastType.ALL_WAITER); } @Override diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/AbstractAggregate.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/AbstractAggregate.java index 5f20c0f..e5911d8 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/AbstractAggregate.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/AbstractAggregate.java @@ -6,24 +6,50 @@ import java.util.ArrayList; import java.util.List; +/** + * @author steve + * @param 元素类型 + * @description 拥有迭代器的元素集合对象 -- 抽象基类 + * + */ public abstract class AbstractAggregate { protected List lst = new ArrayList(); protected int size = 0; + /** + * @description 添加元素 + * @param i 索引位置 + * @param elem 元素 + */ public void add(int i,T elem){ lst.add(i,elem); } + /** + * @description 从集合中删除元素 + * @param i 删除元素位置 + * @return T 删除的元素 + */ public T remove(int i){ if (lst.size() > 0) { return lst.remove(i); } + System.out.println("ERROR:null array delete error"); return null; } + /** + * @description 判断元素集合非空 + * @return boolean + */ public boolean isEmpty(){ return lst.isEmpty(); } + /** + * @description 获取迭代器对象 + * @implNote 修改集合对象会导致之前获取的迭代器的失效! + * @return MyIterator 迭代器对象 + */ public abstract MyIterator createIterator(); } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/Order.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/Order.java index 4bf6162..715a55b 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/Order.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/Order.java @@ -52,7 +52,8 @@ public void setEmployeeList(List employeeList) { /** - * @author eyisheng + * @author steve + * @return orderID 当前的 order ID */ public String getOrderID() { return orderID; @@ -114,16 +115,18 @@ public void setOrderState(Integer orderState) { } - /* - convert @undetermined-order into @order + /** + * @author steve + * @description set 目前的 Order 变成 DETERMINED */ public void setTypeToDetermined(){ this.type = OrderType.DETERMINED; } - /* - add new dish to the dish array + /** + * @author steve + * @param dsh 添加的菜 */ public void addDish(Dish dsh){ dishes.add(dsh); @@ -132,6 +135,12 @@ public void addDish(Dish dsh){ /* remove dish by dishID */ + + /** + * @author steve + * @param dishID 删除的 dishID + * @return boolean + */ public boolean removeDish(String dishID){ for (Dish dsh:dishes){ if (dishID == dsh.getDishID()){ @@ -141,7 +150,9 @@ public boolean removeDish(String dishID){ return false; } - public List getDishes(){return this.dishes;} + public List getDishes(){ + return this.dishes; + } @Override diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/OrderAggregate.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/OrderAggregate.java index dde7c02..eae0fb5 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/OrderAggregate.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Order/OrderAggregate.java @@ -4,6 +4,10 @@ import edu.tongji.designpattern.DevideByPattern.IteratorPattern.MyIterator; import edu.tongji.designpattern.DevideByPattern.IteratorPattern.OrderIterator; +/** + * @author steve + * @descritpion 所有 order 的集合类,可使用迭代器 + */ public class OrderAggregate extends AbstractAggregate { @Override diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/BroadcastType.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/BroadcastType.java index f93b3a6..dabb2c2 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/BroadcastType.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/BroadcastType.java @@ -1,5 +1,11 @@ package edu.tongji.designpattern.CommonClass.Other; +/** + * @author steve + * @description ALL 给所有人发消息 + * MANAGER_REPORT 给经理发消息 + * ALL_EMPLOYEE 经理给所有员工发消息 + */ public enum BroadcastType { - MANAGER_REPORT, ALL, ALL_EMPLOYEE + MANAGER_REPORT, ALL, ALL_WAITER } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/Dish.java b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/Dish.java index b430f7f..68f8234 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/Dish.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/CommonClass/Other/Dish.java @@ -6,20 +6,20 @@ public class Dish { public String getDishID(){return this.dishID;} -// private String name; -// private Integer price; -// private String category; -// -// -// public void setName(String name){ -// this.name=name; -// } -// -// public void setPrice(Integer price) { -// this.price = price; -// } -// -// public void setCategory(String category) { -// this.category = category; -// } + private String name; + private Integer price; + private String category; + + + public void setName(String name){ + this.name=name; + } + + public void setPrice(Integer price) { + this.price = price; + } + + public void setCategory(String category) { + this.category = category; + } } diff --git a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/MediatorPattern/InterPhoneChannel.java b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/MediatorPattern/InterPhoneChannel.java index bc1c856..4bee83a 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/MediatorPattern/InterPhoneChannel.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/DevideByPattern/MediatorPattern/InterPhoneChannel.java @@ -7,13 +7,18 @@ import java.util.ArrayList; import java.util.List; +/** + * @author steve + * @description singleton 对象,获取公共信道 + */ public class InterPhoneChannel { private Boolean status = false; private List onlineEmployees = new ArrayList(); public static InterPhoneChannel instance = null; - /* - singleton + /** + * @description private constructor + * @param eArray */ private InterPhoneChannel(List eArray){ try{ @@ -33,6 +38,11 @@ private InterPhoneChannel(List eArray){ } + /** + * @descriiption get singleton object + * @param eArray + * @return + */ public static InterPhoneChannel getInstance(List eArray){ if (instance == null){ instance = new InterPhoneChannel(eArray); @@ -40,15 +50,20 @@ public static InterPhoneChannel getInstance(List eArray){ return instance; } - /* - notify objects + /** + * @author steve + * @description 发送消息 + * @param sender 发送者 + * @param message 消息 + * @param bctype 广播类型 + * @return boolean 发送结果 */ public Boolean notify(Employee sender, String message, BroadcastType bctype){ if (sender == null || this.status == false){ System.out.println("notify failure"); return false; } - if (bctype == BroadcastType.ALL_EMPLOYEE){ + if (bctype == BroadcastType.ALL_WAITER){ for (Employee e:this.onlineEmployees){ if (e.getTitle() == EmployeeTitle.WAITER){ /// pass message diff --git a/DesignPatternProject/src/edu/tongji/designpattern/Main.java b/DesignPatternProject/src/edu/tongji/designpattern/Main.java index 5e4cc72..0fc7011 100644 --- a/DesignPatternProject/src/edu/tongji/designpattern/Main.java +++ b/DesignPatternProject/src/edu/tongji/designpattern/Main.java @@ -2,6 +2,14 @@ +import edu.tongji.designpattern.CommonClass.Employee.Employee; +import edu.tongji.designpattern.CommonClass.Employee.EmployeeTitle; +import edu.tongji.designpattern.CommonClass.Employee.Manager; +import edu.tongji.designpattern.CommonClass.Employee.Waiter; +import edu.tongji.designpattern.DevideByPattern.BridgePattern.AirConditionerAPI; +import edu.tongji.designpattern.DevideByPattern.BridgePattern.FloorAirConditioner; +import edu.tongji.designpattern.DevideByPattern.MediatorPattern.InterPhoneChannel; + import java.util.ArrayList; import java.util.List; @@ -11,7 +19,19 @@ public class Main { //// 合并的时候这里写单元测试,加上自己的函数 public class Debug{ public class Eyisheng{ - + public void serveNewCustomer(){ + List elist = new ArrayList<>(); + AirConditionerAPI airConditionerAPI = new FloorAirConditioner(); + Waiter wt1 = new Waiter(); + Waiter wt2 = new Waiter(); + Manager manager = new Manager(1,"manager", + EmployeeTitle.MANAGER,airConditionerAPI); + elist.add(wt1); + elist.add(wt2); + elist.add(manager); + InterPhoneChannel channel = InterPhoneChannel.getInstance(elist); + + } } }