Skip to content

Commit

Permalink
更新源代码
Browse files Browse the repository at this point in the history
  • Loading branch information
javastacks committed Apr 13, 2021
1 parent 7ec4f4d commit 30f4083
Show file tree
Hide file tree
Showing 17 changed files with 398 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package cn.javastack.test.designpattern.factory.abst;

import lombok.Data;
import lombok.ToString;

/**
* 商户
* @author: 栈长
* @from: 公众号Java技术栈
*/
@Data
@ToString(callSuper = true)
public class AgentExt extends CustomerExt {

/**
* 来源
*/
private String source;

/**
* 资质
*/
private String certification;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package cn.javastack.test.designpattern.factory.abst;

import cn.javastack.test.designpattern.factory.simple.Agent;
import cn.javastack.test.designpattern.factory.simple.Customer;

/**
* 代理商工厂
* @author: 栈长
* @from: 公众号Java技术栈
*/
public class AgentFactory implements CustomerFactory {

@Override
public Customer createCustomer(String type, String name) {
return new Agent(type, name);
}

@Override
public CustomerExt createCustomerExt() {
return new AgentExt();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package cn.javastack.test.designpattern.factory.abst;

import lombok.Data;
import lombok.ToString;

/**
* 银行客户扩展
* @author: 栈长
* @from: 公众号Java技术栈
*/
@Data
@ToString(callSuper = true)
public class BankPartnerExt extends CustomerExt {

/**
* 分行个数
*/
private int branchCount;

/**
* ATM个数
*/
private int atmCount;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package cn.javastack.test.designpattern.factory.abst;

import cn.javastack.test.designpattern.factory.simple.BankPartner;
import cn.javastack.test.designpattern.factory.simple.Customer;

/**
* 银行客户工厂
* @author: 栈长
* @from: 公众号Java技术栈
*/
public class BankPartnerFactory implements CustomerFactory {

@Override
public Customer createCustomer(String type, String name) {
return new BankPartner(type, name);
}

@Override
public CustomerExt createCustomerExt() {
return new BankPartnerExt();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package cn.javastack.test.designpattern.factory.abst;

import lombok.Data;
import lombok.NoArgsConstructor;

/**
* 客户扩展
* @author: 栈长
* @from: 公众号Java技术栈
*/
@Data
@NoArgsConstructor
public abstract class CustomerExt {

/**
* 客户曾用名
*/
private String formerName;

/**
* 客户扩展说明
*/
private String note;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package cn.javastack.test.designpattern.factory.abst;

import cn.javastack.test.designpattern.factory.simple.Customer;

/**
* 抽象工厂客户接口
* @author: 栈长
* @from: 公众号Java技术栈
*/
public interface CustomerFactory {

Customer createCustomer(String type, String name);

CustomerExt createCustomerExt();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package cn.javastack.test.designpattern.factory.abst;

import lombok.Data;
import lombok.ToString;

/**
* 商户
* @author: 栈长
* @from: 公众号Java技术栈
*/
@Data
@ToString(callSuper = true)
public class MerchantExt extends CustomerExt {

/**
* 介绍人
*/
private int introduceName;

/**
* 介绍人电话
*/
private String introduceTel;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package cn.javastack.test.designpattern.factory.abst;

import cn.javastack.test.designpattern.factory.simple.Customer;
import cn.javastack.test.designpattern.factory.simple.Merchant;

/**
* 商户工厂
* @author: 栈长
* @from: 公众号Java技术栈
*/
public class MerchantFactory implements CustomerFactory {

@Override
public Customer createCustomer(String type, String name) {
return new Merchant(type, name);
}

@Override
public CustomerExt createCustomerExt() {
return new MerchantExt();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package cn.javastack.test.designpattern.factory.method;

import cn.javastack.test.designpattern.factory.simple.Agent;
import cn.javastack.test.designpattern.factory.simple.Customer;

/**
* 代理商工厂
* @author: 栈长
* @from: 公众号Java技术栈
*/
public class AgentFactory implements CustomerFactory {

@Override
public Customer create(String type, String name) {
return new Agent(type, name);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package cn.javastack.test.designpattern.factory.method;

import cn.javastack.test.designpattern.factory.simple.BankPartner;
import cn.javastack.test.designpattern.factory.simple.Customer;
import cn.javastack.test.designpattern.factory.simple.Merchant;

/**
* 银行客户工厂
* @author: 栈长
* @from: 公众号Java技术栈
*/
public class BankPartnerFactory implements CustomerFactory {

@Override
public Customer create(String type, String name) {
return new BankPartner(type, name);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package cn.javastack.test.designpattern.factory.method;

import cn.javastack.test.designpattern.factory.simple.Customer;

/**
* 工厂方法客户接口
* @author: 栈长
* @from: 公众号Java技术栈
*/
public interface CustomerFactory {

Customer create(String type, String name);

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package cn.javastack.test.designpattern.factory.method;

import cn.javastack.test.designpattern.factory.simple.Customer;
import cn.javastack.test.designpattern.factory.simple.Merchant;

/**
* 商户工厂
* @author: 栈长
* @from: 公众号Java技术栈
*/
public class MerchantFactory implements CustomerFactory {

@Override
public Customer create(String type, String name) {
return new Merchant(type, name);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package cn.javastack.test.designpattern.factory.simple;

import lombok.Data;
import lombok.ToString;

/**
* 代理商
* @author: 栈长
* @from: 公众号Java技术栈
*/
@Data
@ToString(callSuper = true)
public class Agent extends Customer {

/**
* 代理周期
*/
private int period;

/**
* 代理产品
*/
private int[] products;

public Agent(String name, String type) {
super(name, type);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package cn.javastack.test.designpattern.factory.simple;

import lombok.Data;
import lombok.ToString;

/**
* 银行客户
* @author: 栈长
* @from: 公众号Java技术栈
*/
@Data
@ToString(callSuper = true)
public class BankPartner extends Customer {

/**
* 银行编码
*/
private String code;

/**
* 银行地址
*/
private String address;

public BankPartner(String name, String type) {
super(name, type);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package cn.javastack.test.designpattern.factory.simple;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
* 客户
* @author: 栈长
* @from: 公众号Java技术栈
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public abstract class Customer {

/**
* 客户名称
*/
private String name;

/**
* 客户类型
*/
private String type;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package cn.javastack.test.designpattern.factory.simple;

/**
* 客户简单工厂
* @author: 栈长
* @from: 公众号Java技术栈
*/
public class CustomerFactory {

private static Merchant createMerchant(String type, String name) {
return new Merchant(type, name);
}

private static BankPartner createBankPartner(String type, String name) {
return new BankPartner(type, name);
}

private static Agent createAgent(String type, String name) {
return new Agent(type, name);
}

public static Customer create(String type, String name) {
if ("M".equals(type)) {
return createMerchant(type, name);
} else if ("B".equals(type)) {
return createBankPartner(type, name);
} else if ("A".equals(type)) {
return createAgent(type, name);
}
return null;
}

}
Loading

0 comments on commit 30f4083

Please sign in to comment.