Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion DesignPatternProject/DesignPatternProject.iml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="jdk" jdkName="11" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package edu.tongji.designpattern.ClassDesign.Business.AdaptorDemo;
/*
* created by zhujitao
* 2019/10/22
* A类优惠卷,可以享受6.8折优惠
* */

public interface Coupon {

final String type = "";
final double discountPercentage = 0;

public double returnDiscount();

public String getType();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package edu.tongji.designpattern.ClassDesign.Business.AdaptorDemo;

/*
* created by zhujitao
* 2019/10/22
* A类优惠卷,可以享受6.8折优惠
* */

public class CouponA implements Coupon {

final String type = "A";
final double discountPercentage = 0.68;

@Override
public String getType() {
return type;
}

@Override
public double returnDiscount() {
return discountPercentage;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package edu.tongji.designpattern.ClassDesign.Business.AdaptorDemo;/*
* created by zhujitao
* 2019/10/22
* B类优惠卷,可以享受8.8折优惠
* */

public class CouponB implements Coupon {

final String type = "B";
final double discountPercentage = 0.88;

@Override
public String getType() {
return type;
}

@Override
public double returnDiscount() {
return discountPercentage;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package edu.tongji.designpattern.ClassDesign.Business.AdaptorDemo;/*
* created by zhujitao
* 2019/10/22
* C类优惠卷,可以享受9.8折优惠
* */

public class CouponC implements Coupon {

final String type = "A";
final double discountPercentage = 0.98;

@Override
public String getType() {
return type;
}

@Override
public double returnDiscount() {
return discountPercentage;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package edu.tongji.designpattern.ClassDesign.Business.AdaptorDemo;

/*
* created by zhujitao
* 2019/10/22
* N类优惠卷,就是没有优惠卷,不享受任何优惠
* */

public class CouponN implements Coupon {

final String type = "N";
final double discountPercentage = 0.0;

@Override
public String getType() {
return type;
}

@Override
public double returnDiscount() {
return discountPercentage;
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package edu.tongji.designpattern.ClassDesign.Business.AdaptorDemo;/*
* created by zhujitao
* 2019/10/22
* 优惠卷适配器的接口
* */

public interface Discount {

public double getDiscount();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package edu.tongji.designpattern.ClassDesign.Business.AdaptorDemo;/*
* created by zhujitao
* 2019/10/22
* 优惠卷的适配器,通过输入的字符串返回不同的折扣比例
* */

public class DiscountAdapter implements Discount {

Coupon coupon = null;
private String couponType = "";

public DiscountAdapter(String couponType){
this.couponType = couponType;
}

@Override
public double getDiscount() {
if(couponType.equals("A")){
coupon = new CouponA();
}else if(couponType.equals("B")){
coupon = new CouponB();
}else if(couponType.equals("C")){
coupon = new CouponC();
}
return coupon.returnDiscount();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package edu.tongji.designpattern.ClassDesign.Business.AdaptorDemo;

/*
* created by zhujitao
* 2019/10/22
* 实际得到具体折扣的类,通过输入的字符串返回不同的折扣比例
* */

public class RealDiscount implements Discount {

DiscountAdapter discountAdapter = null;
String couponType = "";


public RealDiscount(String couponType){
this.couponType = couponType;
}

@Override
public double getDiscount() {
discountAdapter = new DiscountAdapter(couponType);
return discountAdapter.getDiscount();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package edu.tongji.designpattern.ClassDesign.Business.Builder;

import edu.tongji.designpattern.ClassDesign.Tools.Combo;
import edu.tongji.designpattern.ClassDesign.Tools.Dish;



public abstract class ComboBuilder {
protected Combo combo=new Combo();
public abstract void buildDishA();
public abstract void buildDishB();
public abstract void buildDrink();
public abstract void buildPrice();
public Combo getResult(){
return combo;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package edu.tongji.designpattern.ClassDesign.Business.Builder;

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");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package edu.tongji.designpattern.ClassDesign.Business.Builder;

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");
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package edu.tongji.designpattern.ClassDesign.Business.Builder;

import edu.tongji.designpattern.ClassDesign.Tools.Combo;

public class Director {
private ComboBuilder comboBuilder;
public Director(ComboBuilder comboBuilder){
this.comboBuilder=comboBuilder;
}

public Combo construct(){
System.out.println("套餐内容:");
comboBuilder.buildDishA();
comboBuilder.buildDishB();
comboBuilder.buildDrink();
comboBuilder.buildPrice();
return comboBuilder.getResult();
}

}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
package edu.tongji.designpattern.ClassDesign.Business.ChainofResponsibilityDemo;

/*
* created by zhujitao
* 2019/10/22
* 责任链模式里面的投诉类
* */


import edu.tongji.designpattern.ClassDesign.Person.Employee;
import edu.tongji.designpattern.ClassDesign.Person.Manager;
import edu.tongji.designpattern.ClassDesign.Person.Waiter;

public class Complaint {

Manager manager;
Waiter waiter;

Employee employee;

public int level;

public Complaint(int level, Manager manager, Waiter waiter){
this.level = level;
this.manager =manager;
this.waiter = waiter;
}

//责任链模式,将投诉通过类型进行分析,如果是低级投诉就
//使用服务员来解决,高级投诉使用经理来解决
//假设投诉登记为1时服务员前来处理,否则的话是由经理来处理
//最终默认投诉会被处理
public void setCurHanlder(){
if (level==1){
employee = waiter;
}else {
employee = manager;
}
}

public void settleProblem(){
employee.settleComplaint();
}

public Employee getEmployee() {
return employee;
}

public int getLevel() {
return level;
}

public Manager getManager() {
return manager;
}

public Waiter getWaiter() {
return waiter;
}

public void setEmployee(Employee employee) {
this.employee = employee;
}

public void setLevel(int level) {
this.level = level;
}

public void setManager(Manager manager) {
this.manager = manager;
}

public void setWaiter(Waiter waiter) {
this.waiter = waiter;
}
}
Loading