java设计模式及应用案例

2023年 7月 29日 43.6k 0

一、前言

设计模式是针对软件开发中常见问题的经验总结,它代表了最佳实践,是软件开发人员必须掌握的核心知识。

本文将介绍几种常见的设计模式,并提供相应的Java应用示例。

图片[1]-java设计模式及应用案例-不念博客

二、单例模式

单例模式是一种创建型设计模式,它保证一个类只有一个实例,并提供一个全局访问点。

例如,在日志记录或数据库连接等场景中,通常我们只需要一个全局对象。

Java实现示例:

public class Singleton {
    private static Singleton instance;

    private Singleton() {}

    public static synchronized Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

三、工厂模式

工厂模式是一种创建型设计模式,它提供了一个创建对象的接口,但将实际的对象实例化推迟到子类。

例如,在实现一个面向接口编程的系统时,不知道具体要实例化哪个类,可以使用工厂模式。

Java实现示例:

interface Animal {
    void speak();
}

class Dog implements Animal {
    public void speak() {
        System.out.println("Woof!");
    }
}

class Cat implements Animal {
    public void speak() {
        System.out.println("Meow!");
    }
}

class AnimalFactory {
    public Animal createAnimal(String type) {
        if (type.equalsIgnoreCase("Dog")) {
            return new Dog();
        } else if (type.equalsIgnoreCase("Cat")) {
            return new Cat();
        }
        return null;
    }
}

四、观察者模式

观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。

这个主题对象在状态变化时,会通知所有的观察者对象,使它们能够自动更新自己。

例如,新闻发布系统,当有新的新闻发布时,所有的订阅者都会收到通知。

Java实现示例:

import java.util.Observable;
import java.util.Observer;

class NewsAgency extends Observable {
    private String news;

    public void setNews(String news) {
        this.news = news;
        setChanged();
        notifyObservers(news);
    }
}

class NewsChannel implements Observer {
    private String news;

    @Override
    public void update(Observable o, Object news) {
        this.news = (String) news;
    }
}

设计模式提供了解决软件设计中常见问题的最佳实践。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论