forked from javastacks/javastack
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
7ec4f4d
commit 30f4083
Showing
17 changed files
with
398 additions
and
0 deletions.
There are no files selected for viewing
25 changes: 25 additions & 0 deletions
25
javastack-test/src/main/java/cn/javastack/test/designpattern/factory/abst/AgentExt.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
|
||
} |
23 changes: 23 additions & 0 deletions
23
javastack-test/src/main/java/cn/javastack/test/designpattern/factory/abst/AgentFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | ||
} | ||
|
||
} |
25 changes: 25 additions & 0 deletions
25
...stack-test/src/main/java/cn/javastack/test/designpattern/factory/abst/BankPartnerExt.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
|
||
} |
23 changes: 23 additions & 0 deletions
23
...k-test/src/main/java/cn/javastack/test/designpattern/factory/abst/BankPartnerFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | ||
} | ||
|
||
} |
25 changes: 25 additions & 0 deletions
25
javastack-test/src/main/java/cn/javastack/test/designpattern/factory/abst/CustomerExt.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
|
||
} |
16 changes: 16 additions & 0 deletions
16
...tack-test/src/main/java/cn/javastack/test/designpattern/factory/abst/CustomerFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | ||
|
||
} |
25 changes: 25 additions & 0 deletions
25
javastack-test/src/main/java/cn/javastack/test/designpattern/factory/abst/MerchantExt.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
|
||
} |
23 changes: 23 additions & 0 deletions
23
...tack-test/src/main/java/cn/javastack/test/designpattern/factory/abst/MerchantFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | ||
} | ||
|
||
} |
18 changes: 18 additions & 0 deletions
18
...stack-test/src/main/java/cn/javastack/test/designpattern/factory/method/AgentFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | ||
} | ||
|
||
} |
19 changes: 19 additions & 0 deletions
19
...test/src/main/java/cn/javastack/test/designpattern/factory/method/BankPartnerFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | ||
} | ||
|
||
} |
14 changes: 14 additions & 0 deletions
14
...ck-test/src/main/java/cn/javastack/test/designpattern/factory/method/CustomerFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | ||
|
||
} |
18 changes: 18 additions & 0 deletions
18
...ck-test/src/main/java/cn/javastack/test/designpattern/factory/method/MerchantFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | ||
} | ||
|
||
} |
28 changes: 28 additions & 0 deletions
28
javastack-test/src/main/java/cn/javastack/test/designpattern/factory/simple/Agent.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | ||
} | ||
} |
28 changes: 28 additions & 0 deletions
28
javastack-test/src/main/java/cn/javastack/test/designpattern/factory/simple/BankPartner.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | ||
} | ||
} |
27 changes: 27 additions & 0 deletions
27
javastack-test/src/main/java/cn/javastack/test/designpattern/factory/simple/Customer.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
|
||
} |
33 changes: 33 additions & 0 deletions
33
...ck-test/src/main/java/cn/javastack/test/designpattern/factory/simple/CustomerFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
} | ||
|
||
} |
Oops, something went wrong.