javaweb中的设计模式

1.监听器基于观察者模式。

1.myTestEvent自定义事件。被观察者
public class MyTestEvent extends ApplicationEvent
2.MyNoAnnotationListener 自定义监听器。观察者
@Component
public class MyNoAnnotationListener implements ApplicationListener<MyTestEvent> {

@Override
public void onApplicationEvent(MyTestEvent event) {
System.out.println("非注解监听器:" + event.getMsg());
}

}
3.发布自定义事件。
@Component
public class MyTestEventPubLisher {
@Autowired
private ApplicationEventPublisher applicationEventPublisher;

/**
* 事件发布方法
*/
public void pushListener(String msg) {
applicationEventPublisher.publishEvent(new MyTestEvent(this, msg));
}

}
2.把if else拆开,走同一个接口的不同实现,策略模式。
3.构建者模式

在Java中,构建者模式(Builder Pattern)是一种创建对象的设计模式。它可以使用一种清晰的方式构造复杂的对象,而不必暴露对象的内部细节。构建者模式适用于需要创建具有多个可选参数的对象。

下面是一个简单的示例,演示了如何使用构建者模式创建一个Person对象:

首先,我们定义一个Person类,该类具有一些必需的属性和一些可选的属性:

public class Person {
    private final String name;
    private final int age;
    private final String address;
    private final String phoneNumber;

    private Person(PersonBuilder builder) {
        this.name = builder.name;
        this.age = builder.age;
        this.address = builder.address;
        this.phoneNumber = builder.phoneNumber;
    }

    // 省略getter方法

    public static class PersonBuilder {
        private final String name;
        private final int age;
        private String address;
        private String phoneNumber;

        public PersonBuilder(String name, int age) {
            this.name = name;
            this.age = age;
        }

        public PersonBuilder setAddress(String address) {
            this.address = address;
            return this;
        }

        public PersonBuilder setPhoneNumber(String phoneNumber) {
            this.phoneNumber = phoneNumber;
            return this;
        }

        public Person build() {
            return new Person(this);
        }
    }
}

然后,我们可以使用构建者模式创建Person对象:

Person person = new Person.PersonBuilder("John", 30)
                .setAddress("123 Main St")
                .setPhoneNumber("555-1234")
                .build();

在上面的示例中,我们首先使用Person.PersonBuilder类的构造函数创建一个构建者对象。然后,我们可以使用该对象的方法链来设置可选的属性,并最后调用build()方法来构建Person对象。

通过使用构建者模式,我们可以使用具有多个可选参数的对象来创建对象,而不必在构造函数中传递大量的参数。这使得代码更加清晰和易于维护。


4.卖咖啡装饰器模式。
5.log日志适配器模式。

posted @ 2023-12-22 15:04  人在代码在  阅读(40)  评论(0)    收藏  举报