菜鸟教程java常见的设计模式
  qipMEyX5w3Af 2023年12月22日 17 0

Java常见的设计模式

设计模式是一种解决常见问题的重复利用的经验总结。在软件开发中,使用设计模式可以提高代码的可读性、可维护性和可扩展性。Java作为一种非常流行的编程语言,提供了丰富的设计模式供开发人员使用。

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

1. 单例模式

单例模式是一种保证类只有一个实例的设计模式。在Java中,可以通过私有化构造函数和静态方法实现单例模式。

以下是一个简单的单例模式实现的示例代码:

public class Singleton {
    private static Singleton instance;

    private Singleton() {}

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

2. 工厂模式

工厂模式是一种通过工厂类创建对象的设计模式。在Java中,可以通过定义一个工厂类,根据不同的参数创建不同的对象。

以下是一个简单的工厂模式实现的示例代码:

public interface Shape {
    void draw();
}

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

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

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

3. 观察者模式

观察者模式是一种定义对象间一对多依赖关系的设计模式。在Java中,可以通过使用观察者接口和被观察者类实现观察者模式。

以下是一个简单的观察者模式实现的示例代码:

import java.util.ArrayList;
import java.util.List;

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

public class User implements Observer {
    private String name;

    public User(String name) {
        this.name = name;
    }

    @Override
    public void update(String message) {
        System.out.println(name + " received a message: " + message);
    }
}

public class NewsPublisher {
    private List<Observer> observers = new ArrayList<>();

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

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

    public void publish(String message) {
        for (Observer observer : observers) {
            observer.update(message);
        }
    }
}

关系图

使用mermaid语法中的erDiagram标识关系图如下:

erDiagram
    User ||--o{ NewsPublisher : observes
    NewsPublisher ||--|| Observer : notifies

类图

使用mermaid语法中的classDiagram标识类图如下:

classDiagram
    class Singleton {
        - instance: Singleton
        + getInstance(): Singleton
        - Singleton()
    }
    class Shape {
        + draw()
    }
    class Rectangle {
        + draw()
    }
    class Circle {
        + draw()
    }
    class ShapeFactory {
        + createShape(shapeType)
    }
    class Observer {
        + update(message)
    }
    class User {
        - name: String
        + User(name)
        + update(message)
    }
    class NewsPublisher {
        - observers: List<Observer>
        + addObserver(observer)
        + removeObserver(observer)
        + publish(message)
    }

    User ..> NewsPublisher : observes
    NewsPublisher .. Observer : notifies

以上就是几种常见的Java设计模式的简单介绍和代码示例。掌握这些设计模式可以帮助开发人员更好地编写可维护和可扩展的代码,并提高开发效率。尽管本文只介绍了几种常见的设计模式,但在实际开发中,根据具体的需求还可以使用其他设计模式来解决问题。希望本文对您有所帮助!

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: 安卓查看手机架构 下一篇: 安卓取消java
  1. 分享:
最后一次编辑于 2023年12月22日 0

暂无评论

推荐阅读
qipMEyX5w3Af