7 个回答
责任链设计模式:
责任链模式使多个对象有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。
责任链模式使多个对象有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。
优点:降低耦合度,增加程序的灵活性。
缺点:可能会导致性能问题,因为每个请求都可能遍历整个链。
使用场景:有多个对象可以处理同一个请求,但是处理者不确定。
实现方式:定义一个处理请求的接口,以及一系列继承自该接口的处理者类。每个处理者类都有一个指向下一个处理者的引用。
发布于:1个月前 (03-21) IP属地:四川省
示例代码:
public interface Handler {
void setNext(Handler next);
void handleRequest(Request request);
}
@Component
public class ConcreteHandler1 implements Handler {
private Handler next;
@Override
public void setNext(Handler next) {
this.next = next;
}
@Override
public void handleRequest(Request request) {
if (request.getType() == RequestType.TYPE1) {
System.out.println("ConcreteHandler1 handles request.");
} else if (next != null) {
next.handleRequest(request);
}
}
}
// 其他处理器类似...
@Configuration
public class HandlerConfig {
@Autowired
public void configureHandlers(ConcreteHandler1 handler1, ConcreteHandler2 handler2) {
handler1.setNext(handler2);
}
}
发布于:1个月前 (03-21) IP属地:四川省
策略设计模式:
策略模式允许你定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换。本模式使得算法的变化独立于使用算法的客户。
策略模式允许你定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换。本模式使得算法的变化独立于使用算法的客户。
优点:算法可以自由切换,避免了硬编码带来的问题。
缺点:客户端需要知道所有的策略类。
使用场景:多个相关类只因行为不同而不同;需要在运行时改变对象的行为。
实现方式:定义一个策略接口,然后为每个具体策略创建一个实现了该接口的类。
发布于:1个月前 (03-21) IP属地:四川省
示例代码:
public interface PaymentStrategy {
void pay(int amount);
}
@Component
public class CreditCardStrategy implements PaymentStrategy {
@Override
public void pay(int amount) {
System.out.println(amount + " paid with credit/debit card");
}
}
@Component
public class PayPalStrategy implements PaymentStrategy {
@Override
public void pay(int amount) {
System.out.println(amount + " paid using Paypal.");
}
}
// 使用@Autowired注入具体的策略
@Service
public class ShoppingCart {
private final PaymentStrategy paymentStrategy;
@Autowired
public ShoppingCart(PaymentStrategy paymentStrategy) {
this.paymentStrategy = paymentStrategy;
}
public void checkout(int amount) {
paymentStrategy.pay(amount);
}
}
发布于:1个月前 (03-21) IP属地:四川省
工厂设计模式:
工厂模式是一种创建型设计模式,它提供了一种接口来创建对象,但由子类决定实例化哪一个类。工厂方法让类的实例化推迟到子类。
工厂模式是一种创建型设计模式,它提供了一种接口来创建对象,但由子类决定实例化哪一个类。工厂方法让类的实例化推迟到子类。
优点:提高了代码的灵活性和可扩展性。
缺点:增加了系统的复杂度。
使用场景:当一个类不知道它所必须创建的对象的类的时候;当一个类希望它的子类来指定它所创建的对象的时候等。
实现方式:定义一个创建对象的接口(可以是一个抽象类),让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到了子类。
发布于:1个月前 (03-21) IP属地:四川省
示例代码:
public interface MessageService {
void sendMessage(String msg, String rec);
}
@Component
public class EmailService implements MessageService {
@Override
public void sendMessage(String msg, String rec) {
System.out.println("Email sent to " + rec + " with Message=" + msg);
}
}
@Component
public class SMSService implements MessageService {
@Override
public void sendMessage(String msg, String rec) {
System.out.println("SMS sent to " + rec + " with Message=" + msg);
}
}
@Configuration
public class AppConfig {
@Bean
public MessageService messageService() {
return new EmailService(); // 可以根据条件选择不同的实现
}
}
发布于:1个月前 (03-21) IP属地:四川省
我来回答
您需要 登录 后回答此问题!