当前位置 : 主页 > 编程语言 > java >

菜鸟教程Java设计模式

来源:互联网 收集:自由互联 发布时间:2023-09-03
设计模式简介 设计模式是一种被反复使用、可提高代码复用性、可减少代码开发时间的经验总结。 在软件开发过程中,设计模式是解决特定问题的最佳实践,它们提供了一种通用的、

设计模式简介

设计模式是一种被反复使用、可提高代码复用性、可减少代码开发时间的经验总结。

在软件开发过程中,设计模式是解决特定问题的最佳实践,它们提供了一种通用的、可重用的解决方案,可以在各种不同的应用程序中使用。

Java设计模式是指应用于Java编程语言的设计模式,它们帮助开发人员在开发过程中遵循最佳实践,以提高代码的可读性和可维护性。

单例模式

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

在Java中,单例模式可以通过以下方式实现:

public class Singleton {
    private static Singleton instance;
    
    private Singleton() {
        // 私有构造方法
    }
    
    public static synchronized Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

在上面的代码中,通过私有构造方法和静态方法getInstance()来控制单例的创建和访问。

工厂模式

工厂模式是一种创建型设计模式,它提供了一种创建对象的方式,而无需指定具体类的代码。

在Java中,工厂模式可以通过以下方式实现:

public interface Shape {
    void draw();
}

public class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing a circle");
    }
}

public class Rectangle implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing a rectangle");
    }
}

public class ShapeFactory {
    public Shape getShape(String shapeType) {
        if (shapeType.equalsIgnoreCase("circle")) {
            return new Circle();
        } else if (shapeType.equalsIgnoreCase("rectangle")) {
            return new Rectangle();
        }
        return null;
    }
}

public class Main {
    public static void main(String[] args) {
        ShapeFactory shapeFactory = new ShapeFactory();
        
        Shape circle = shapeFactory.getShape("circle");
        circle.draw();
        
        Shape rectangle = shapeFactory.getShape("rectangle");
        rectangle.draw();
    }
}

在上面的代码中,通过Shape接口定义了一个统一的接口,Circle和Rectangle类实现了这个接口。ShapeFactory类根据传入的参数返回不同的对象。

流程图

下面是单例模式的流程图:

flowchart TD
    A[客户端调用getInstance()] --> B{instance是否为空}
    B -->|是| C[创建单例对象]
    C --> D[返回单例对象]
    B -->|否| D

序列图

下面是工厂模式的序列图:

sequenceDiagram
    participant Client
    participant ShapeFactory
    participant Circle
    participant Rectangle
    
    Client->>ShapeFactory: getShape("circle")
    ShapeFactory->>Circle: new Circle()
    Circle-->>ShapeFactory: 返回Circle对象
    ShapeFactory-->>Client: 返回Circle对象
    
    Client->>ShapeFactory: getShape("rectangle")
    ShapeFactory->>Rectangle: new Rectangle()
    Rectangle-->>ShapeFactory: 返回Rectangle对象
    ShapeFactory-->>Client: 返回Rectangle对象

总结

设计模式是一种重要的软件开发实践,可以帮助开发人员遵循最佳实践,提高代码的可读性和可维护性。

本文介绍了单例模式和工厂模式,通过代码示例和流程图、序列图的形式解释了它们的原理和用法。

希望本文对你理解Java设计模式有所帮助,并能在实际开发中应用它们。

上一篇:过滤重复数据java
下一篇:没有了
网友评论