首页 > 编程语言 >javaweb中的设计模式

javaweb中的设计模式

时间:2023-12-22 15:15:19浏览次数:34  
标签:javaweb private name Person phoneNumber 设计模式 public String

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日志适配器模式。

标签:javaweb,private,name,Person,phoneNumber,设计模式,public,String
From: https://www.cnblogs.com/zqlmianshi/p/17921617.html

相关文章

  • 设计模式之工厂模式
    工厂模式(工厂模式)工厂将创建对象的细节抽离出来,实现对修改关闭。定义==工厂方法模式==定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。工厂模式有3种不同的实现方式,分别是简单工厂模式、工厂方法模式和抽象工厂模式。工厂......
  • Javaweb | 状态管理:Session、Cookie
    ......
  • 软件设计模式基本知识点
         ......
  • java设计模式
    三大种类型的设计模式创建型模式:关注对象的创建过程。结构型模式:关注对象与类的组织模式行为型模式:关注对象之间的交互23种设计模式简单工厂模式定义:根据参数的不同返回不同类的实例。工厂方法模式定义:通过工厂子类来确定究竟应该实例化哪一个具体产品类例子:日志记录器......
  • 小谈设计模式(26)—中介者模式
    (小谈设计模式(26)—中介者模式)专栏介绍主要对目前市面上常见的23种设计模式进行逐一分析和总结,希望有兴趣的小伙伴们可以看一下,会持续更新的。希望各位可以监督我,我们一起学习进步,加油,各位。中介者模式中介者模式(MediatorPattern)是一种行为型设计模式,它通过将对象之间的通信......
  • 设计模式—代理模式
    介绍代码接口创建接口ImagepublicinterfaceImage{voiddisplay();}实体类创建实体类RealImagepublicclassRealImageimplementsImage{privateStringfileName;publicRealImage(StringfileName){this.fileName=fileName;......
  • 设计模式—观察者模式
    介绍代码观察者父类只有一个属性subject表示订阅的主题。update方法用于更新观察者本身publicabstractclassObserver{protectedSubjectsubject;publicabstractvoidupdate();}主题类主题类Subject直到自己的订阅者们,每当主题状态改变的时候就......
  • Python实现软件设计模式6:单例模式 Singleton Pattern
    动机针对某个类,为了保证系统中只创建一个示例,并且易于被访问(例如操作系统的任务管理器,软件的登陆注册界面)自行创建这个实例,无法从外部创建这个实例,向系统提供这个实例饿汉式单例Java版本在类加载的时候,就创建对象,如果后续得不到使用,可能会造成内存资源浪费懒汉式单......
  • Python实现软件设计模式5:原型模式 Prototype Pattern
    动机对象的克隆问题,想要复制出本对象的一个副本,属性方法一模一样从需求上来说,先快速克隆对象,后续根据需求再进行对象局部属性的修改区分为深克隆和浅克隆两个版本,默认为浅克隆角色Prototype抽象原型类ConcretePrototype具体原型类Client客户类浅克隆与深克隆......
  • 设计模式—模板模式
    介绍代码游戏模板类定义一个游戏模板虚类Game,抽象并规范好游戏的进行流程publicabstractclassGame{abstractvoidinit();abstractvoidstartPlay();abstractvoidendPlay();//模板publicfinalvoidplay(){//初始化......