Java开发中的23种设计模式详解(推荐)

Java开发中的23种设计模式详解(推荐)

1. 设计模式的介绍

设计模式是一套反复出现的解决问题的经验总结,它们是经过长期实践而形成的,在软件开发中得到了广泛应用。设计模式是一种表达解决问题和实现系统构架的能力。

2. 常用的设计模式

Java的23种设计模式可分为三类:创建型模式、结构型模式和行为型模式。

2.1 创建型模式

创建型模式主要负责对象的创建过程,这些模式的主要目标是将对象的创建和使用分离开来,从而提高系统的灵活性和可扩展性。创建型模式包括以下几种:

  • 工厂方法模式
  • 抽象工厂模式
  • 单例模式
  • 建造者模式
  • 原型模式

2.2 结构型模式

结构型模式主要用来管理对象之间的关系,这些模式可以在不改变对象结构的前提下,改变对象之间的关系,从而提高系统的灵活性和可维护性。结构型模式包括以下几种:

  • 适配器模式
  • 桥接模式
  • 装饰模式
  • 组合模式
  • 外观模式
  • 享元模式
  • 代理模式

2.3 行为型模式

行为型模式主要用来管理对象之间的算法和责任分配,这些模式可以在不改变对象的前提下,改变对象之间的算法和责任分配,从而提高系统的灵活性和可扩展性。行为型模式包括以下几种:

  • 模板方法模式
  • 命令模式
  • 迭代器模式
  • 观察者模式
  • 中介者模式
  • 备忘录模式
  • 解释器模式
  • 状态模式
  • 策略模式
  • 职责链模式
  • 访问者模式

3. 示例说明

3.1 工厂方法模式示例

public interface Product {
    void show();
}

public class ConcreteProduct1 implements Product {
    public void show() {
        System.out.println("具体产品1显示...");
    }
}

public class ConcreteProduct2 implements Product {
    public void show() {
        System.out.println("具体产品2显示...");
    }
}

public interface Factory {
    Product createProduct();
}

public class ConcreteFactory1 implements Factory {
    public Product createProduct() {
        return new ConcreteProduct1();
    }
}

public class ConcreteFactory2 implements Factory {
    public Product createProduct() {
        return new ConcreteProduct2();
    }
}

public class Client {
    public static void main(String[] args) {
        Factory factory1 = new ConcreteFactory1();
        Product product1 = factory1.createProduct();
        product1.show();

        Factory factory2 = new ConcreteFactory2();
        Product product2 = factory2.createProduct();
        product2.show();
    }
}

3.2 观察者模式示例

public interface Observer {
    void update(String state);
}

public class ConcreteObserver1 implements Observer {
    public void update(String state) {
        System.out.println("具体观察者1的状态:" + state);
    }
}

public class ConcreteObserver2 implements Observer {
    public void update(String state) {
        System.out.println("具体观察者2的状态:" + state);
    }
}

public interface Subject {
    void attach(Observer observer);
    void detach(Observer observer);
    void notify(String state);
}

public class ConcreteSubject implements Subject {
    private List<Observer> observers = new ArrayList<Observer>();
    private String state;

    public void attach(Observer observer) {
        observers.add(observer);
    }

    public void detach(Observer observer) {
        observers.remove(observer);
    }

    public void notify(String state) {
        this.state = state;
        for (Observer observer : observers) {
            observer.update(state);
        }
    }
}

public class Client {
    public static void main(String[] args) {
        Subject subject = new ConcreteSubject();
        Observer observer1 = new ConcreteObserver1();
        Observer observer2 = new ConcreteObserver2();
        subject.attach(observer1);
        subject.attach(observer2);
        subject.notify("今天下雨了");
    }
}

以上就是工厂方法模式和观察者模式的示例说明,通过这些示例可以更好地理解设计模式的实际应用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java开发中的23种设计模式详解(推荐) - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • win10 java(jdk安装)环境变量配置和相关问题

    下面是关于win10 java环境变量配置和相关问题的详细攻略: 1. 下载和安装jdk 首先,我们需要下载并安装Java Development Kit (JDK)。访问Oracle官网下载适合您系统的版本,然后按照安装程序的提示安装即可。安装后可以检查一下是否安装成功,Windows命令行下输入java -version,如果能输出Java版本号,则说明…

    Java 2023年5月26日
    00
  • Java Development Kit (JDK) 安装及环境配置方法

    下面给出完整的Java Development Kit (JDK)安装及环境配置方法攻略,包含以下具体内容: JDK的安装方法 访问Oracle官网下载JDK安装文件,下载地址为:https://www.oracle.com/java/technologies/javase-downloads.html 根据自己操作系统版本选择相应的JDK安装文件并下载,建…

    Java 2023年5月26日
    00
  • SpringBoot控制配置类加载顺序方式

    SpringBoot是一个基于Spring框架的开源应用程序开发框架,主要用于快速构建基于Spring的企业级应用程序。而SpringBoot中一个非常重要的机制就是使用控制配置类进行应用程序的配置。控制配置类可以通过多种方式进行加载,这里我们就详细讲解一下SpringBoot控制配置类加载顺序方式以及相应实例。 控制配置类的加载顺序方式 SpringBoo…

    Java 2023年5月31日
    00
  • jsp 常用标签的使用

    下面是关于“JSP 常用标签的使用”的完整攻略: 1. JSP 常用标签简介 JSP 常用标签可以分为以下几类: 基本标签:以下标签是使用最为频繁的 JSP 标签,它们能够帮助实现基本的输出、判断、循环等功能。 <%@ page %>:用于页面的指令,可以设置页面的属性等。 <%= %>:输出表达式,可以输出 JSP 中的表达式的值。…

    Java 2023年6月15日
    00
  • SpringBoot war包部署到Tomcat服务器

    下面我将向您介绍如何将Spring Boot的war文件部署到Tomcat服务器上。 步骤一:修改pom.xml文件 在pom.xml文件中,我们需要将spring-boot-starter-tomcat依赖改为provided,以避免在打包war包时将Tomcat运行时环境打进war包中。代码示例如下: <!–在<dependencies&g…

    Java 2023年5月19日
    00
  • Java 从网上下载文件的几种方式实例代码详解

    Java 从网上下载文件的几种方式实例代码详解 在Java编程中,有时候需要从网上下载文件,比如下载图片、音频、视频等资源文件。本文将详细讲解Java 从网上下载文件的几种方式,希望可以帮助大家实现这个需求。 1.使用URL类下载文件 使用URL类可以轻松地实现从网上下载文件。实现的过程如下: public static void downloadFile(…

    Java 2023年5月19日
    00
  • struts2配置静态资源代码详解

    让我来详细讲解“struts2配置静态资源代码详解”的完整攻略。在 Struts2 中配置静态资源主要包括三个步骤: 在 web.xml 中添加一个用于处理静态资源请求的 Servlet: 在 web.xml 中添加以下代码: <servlet> <servlet-name>default</servlet-name> &…

    Java 2023年5月20日
    00
  • Java开发工具IntelliJ IDEA安装图解

    下面我来给你详细讲解“Java开发工具IntelliJ IDEA安装图解”的完整攻略。 准备工作 在安装IntelliJ IDEA之前,我们需要先准备好Java环境。具体步骤如下: 1.下载并安装JDK。在官网下载 JDK,根据自己电脑的操作系统选择下载对应版本的JDK,并安装到默认路径下。 2.配置环境变量。将JDK的安装路径添加到系统环境变量中,具体步骤…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部