Compare commits

..

2 Commits

Author SHA1 Message Date
Bunny 4782334a63 feat: 模板方法模式 2025-02-03 16:36:49 +08:00
Bunny 3ede036009 feat: 外观模式 2025-02-03 16:25:11 +08:00
5 changed files with 1089 additions and 814 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,51 @@
package cn.bunny.pattern10;
public class Facade {
public static void main(String[] args) {
DeviceFacade deviceFacade = new DeviceFacade();
// 查看
deviceFacade.on();
// 看完关闭
deviceFacade.off();
}
// 子系统-手机
static class SubSystemIPhone {
public void on() {
System.out.println("打开手机。。。");
}
public void off() {
System.out.println("关闭手机。。。");
}
}
// 子系统-天气
static class SubSystemWeather {
public void on() {
System.out.println("打开天气。。。");
}
public void off() {
System.out.println("关闭天气。。。");
}
}
// 门面
static class DeviceFacade {
// 也可以作为参数传递如果没有别的实现类直接在内部初始化会使使用者更简单
SubSystemIPhone subSystemIPhone = new SubSystemIPhone();
SubSystemWeather subSystemWeather = new SubSystemWeather();
public void on() {
subSystemIPhone.on();
subSystemWeather.on();
}
public void off() {
subSystemWeather.off();
subSystemIPhone.off();
}
}
}

View File

@ -0,0 +1,65 @@
package cn.bunny.pattern11;
public class PaymentProcess {
public static void main(String[] args) {
ConcretePaymentProcess concretePaymentProcess = new ConcretePaymentProcess();
concretePaymentProcess.startProcess();
}
// 抽象模板方法
static abstract class AbstractPaymentProcess {
/**
* 开始流程
*/
public void startProcess() {
authenticationUser();
checkBalance();
executePayment();
returnPayment();
}
/**
* 验证用户身份
*/
private void authenticationUser() {
System.out.println("验证用户身份。。。");
}
/**
* 检查余额
*/
public abstract void checkBalance();
/**
* 执行支付
*/
private void executePayment() {
System.out.println("执行支付。。。");
}
/**
* 返回支付结果
*/
public abstract void returnPayment();
}
static class ConcretePaymentProcess extends AbstractPaymentProcess {
/**
* 检查余额
*/
@Override
public void checkBalance() {
System.out.println("检查完成我的余额还有1999亿元");
}
/**
* 返回支付结果
*/
@Override
public void returnPayment() {
System.out.println("支付成功我的余额还有1994亿元");
}
}
}