update:demo4

This commit is contained in:
dichgrem
2025-11-28 16:59:17 +08:00
parent 41e6b71bd7
commit 5832b4fe9d
34 changed files with 307 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
package com.study.demo4;
class AlipayPayment implements PaymentProcessor {
@Override
public boolean pay(double amount) {
System.out.println("支付宝支付: " + amount);
return true;
}
}

View File

@@ -0,0 +1,11 @@
package com.study.demo4;
class BikeDeliveryCalculator implements DeliveryFeeCalculator {
@Override
public double calculateFee(double distance) {
if (distance <= 5) {
return 5.0; // 起步价
}
return 5.0 + (distance - 5) * 1.5;
}
}

View File

@@ -0,0 +1,12 @@
package com.study.demo4;
class CarDeliveryCalculator implements DeliveryFeeCalculator {
@Override
public double calculateFee(double distance) {
if (distance <= 5) {
return 10.0; // 起步价
}
return 10.0 + (distance - 5) * 2.0;
}
}

View File

@@ -0,0 +1,9 @@
package com.study.demo4;
class CreditCardPayment implements PaymentProcessor {
@Override
public boolean pay(double amount) {
System.out.println("银行卡支付: " + amount);
return true;
}
}

View File

@@ -0,0 +1,5 @@
package com.study.demo4;
interface DeliveryFeeCalculator {
double calculateFee(double distance);
}

View File

@@ -0,0 +1,26 @@
package com.study.demo4;
abstract class HomeAppliance implements SmartDevice {
protected String name;
protected boolean isOn;
public HomeAppliance(String name) {
this.name = name;
this.isOn = false;
}
@Override
public void turnOn() {
isOn = true;
}
@Override
public void turnOff() {
isOn = false;
}
@Override
public String getStatus() {
return name + " is " + (isOn ? "ON" : "OFF");
}
}

View File

@@ -0,0 +1,21 @@
package com.study.demo4;
import java.util.ArrayList;
import java.util.List;
class HomeController {
private List<SmartDevice> devices = new ArrayList<>();
public void addDevice(SmartDevice device) {
devices.add(device);
}
public String getDeviceStatus(String name) {
for (SmartDevice device : devices) {
if (device.getStatus().contains(name)) {
return device.getStatus();
}
}
return "Device not found";
}
}

View File

@@ -0,0 +1,16 @@
package com.study.demo4;
class PaymentFactory {
public static PaymentProcessor getProcessor(String type) {
switch (type.toLowerCase()) {
case "wechat":
return new WechatPayment();
case "alipay":
return new AlipayPayment();
case "card":
return new CreditCardPayment();
default:
throw new IllegalArgumentException("不支持的支付方式");
}
}
}

View File

@@ -0,0 +1,6 @@
package com.study.demo4;
interface PaymentProcessor {
boolean pay(double amount);
}

View File

@@ -0,0 +1,7 @@
package com.study.demo4;
class SmartAirConditioner extends HomeAppliance {
public SmartAirConditioner(String name) {
super(name);
}
}

View File

@@ -0,0 +1,7 @@
package com.study.demo4;
interface SmartDevice {
void turnOn();
void turnOff();
String getStatus();
}

View File

@@ -0,0 +1,7 @@
package com.study.demo4;
class SmartLight extends HomeAppliance {
public SmartLight(String name) {
super(name);
}
}

View File

@@ -0,0 +1,7 @@
package com.study.demo4;
class SmartMasher extends HomeAppliance {
public SmartMasher(String name) {
super(name);
}
}

View File

@@ -0,0 +1,31 @@
package com.study.demo4;
import java.util.ArrayList;
import java.util.List;
public class TestControl {
public static void main(String[] args) {
HomeController controller = new HomeController();
// 创建设备
SmartLight light = new SmartLight("Living Room Light");
SmartAirConditioner ac = new SmartAirConditioner("Bedroom AC");
SmartMasher masher = new SmartMasher("Kitchen Masher");
// 添加到控制器
controller.addDevice(light);
controller.addDevice(ac);
controller.addDevice(masher);
// 测试设备状态
light.turnOff();
ac.turnOff();
masher.turnOn();
// 查询状态
System.out.println(controller.getDeviceStatus("Living Room Light"));
System.out.println(controller.getDeviceStatus("Bedroom AC"));
System.out.println(controller.getDeviceStatus("Kitchen Masher"));
System.out.println(controller.getDeviceStatus("Non-existent Device"));
}
}

View File

@@ -0,0 +1,8 @@
package com.study.demo4;
public class TestPay {
public static void main(String[] args) {
PaymentProcessor processor = PaymentFactory.getProcessor("alipay");
processor.pay(666.0);
}
}

View File

@@ -0,0 +1,22 @@
package com.study.demo4;
public class TestTransport {
public static void main(String[] args) {
// 测试自行车配送
DeliveryFeeCalculator bike = new BikeDeliveryCalculator();
System.out.println("自行车配送 3km: ¥" + bike.calculateFee(3));
System.out.println("自行车配送 8km: ¥" + bike.calculateFee(8));
// 测试汽车配送
DeliveryFeeCalculator car = new CarDeliveryCalculator();
System.out.println("汽车配送 3km: ¥" + car.calculateFee(3));
System.out.println("汽车配送 8km: ¥" + car.calculateFee(8));
// 对比不同距离的费用
System.out.println("\n费用对比:");
for (int km = 1; km <= 10; km++) {
System.out.printf("%dkm: 自行车¥%.1f, 汽车¥%.1f%n",
km, bike.calculateFee(km), car.calculateFee(km));
}
}
}

View File

@@ -0,0 +1,9 @@
package com.study.demo4;
class WechatPayment implements PaymentProcessor {
@Override
public boolean pay(double amount) {
System.out.println("微信支付: " + amount);
return true;
}
}