【JAVA基础篇教学】第十四篇:Java中设计模式

简介: 【JAVA基础篇教学】第十四篇:Java中设计模式

博主打算从0-1讲解下java基础教学,今天教学第十四篇:Java中设计模式。  

设计模式是解决软件设计中常见问题的可重复利用的解决方案。在 Java 中,常见的设计模式包括单例模式、工厂模式、观察者模式等。目前在基础教学篇中只展示常见的几种模式。


一、 单例模式(Singleton Pattern)

说明:

单例模式确保一个类只有一个实例,并提供全局访问点。

示例代码:

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

二、工厂模式(Factory Pattern)

说明:

工厂模式用于创建对象,隐藏对象创建的具体实现细节。

示例代码:

interface Shape {
    void draw();
}
 
class Rectangle implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing rectangle");
    }
}
 
class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing circle");
    }
}
 
class ShapeFactory {
    public Shape getShape(String shapeType) {
        if (shapeType == null) {
            return null;
        }
        if (shapeType.equalsIgnoreCase("RECTANGLE")) {
            return new Rectangle();
        } else if (shapeType.equalsIgnoreCase("CIRCLE")) {
            return new Circle();
        }
        return null;
    }
}

三、观察者模式(Observer Pattern)

说明:

观察者模式定义了对象之间的一对多依赖关系,当一个对象的状态发生变化时,所有依赖它的对象都会收到通知并自动更新。

示例代码:

import java.util.ArrayList;
import java.util.List;
 
interface Observer {
    void update(String message);
}
 
class ConcreteObserver implements Observer {
    private String name;
 
    public ConcreteObserver(String name) {
        this.name = name;
    }
 
    @Override
    public void update(String message) {
        System.out.println(name + " received message: " + message);
    }
}
 
interface Subject {
    void attach(Observer observer);
 
    void detach(Observer observer);
 
    void notifyObservers(String message);
}
 
class ConcreteSubject implements Subject {
    private List<Observer> observers = new ArrayList<>();
 
    @Override
    public void attach(Observer observer) {
        observers.add(observer);
    }
 
    @Override
    public void detach(Observer observer) {
        observers.remove(observer);
    }
 
    @Override
    public void notifyObservers(String message) {
        for (Observer observer : observers) {
            observer.update(message);
        }
    }
}

以上是常见的三种设计模式的详细说明和示例代码。设计模式可以帮助您解决软件设计中的各种问题,并提高代码的可维护性和可扩展性。

相关文章
|
1天前
|
设计模式 开发框架 Java
java设计模式面试题大全含答案
java设计模式面试题大全含答案
|
1天前
|
存储 设计模式 Java
java实习生面试题_java基础面试_java面试题2018及答案_java面试题库
java实习生面试题_java基础面试_java面试题2018及答案_java面试题库
|
1天前
|
SQL 算法 安全
java面试宝典_java基础面试_2018java面试题_2019java最新面试题
java面试宝典_java基础面试_2018java面试题_2019java最新面试题
|
2天前
|
设计模式 监控 安全
屏幕监控软件的设计模式:深入理解Java EE
在Java EE环境中,屏幕监控软件采用生产者-消费者设计模式,`ScreenCaptureProducer`类捕获屏幕数据并放入队列,`ScreenCaptureConsumer`负责处理和提交。数据每5分钟通过定时任务和RESTful API自动提交至网站,提升管理效率。该方案支持实时监控、数据分析和高效的数据处理。
19 2
|
8天前
|
设计模式 存储 安全
Java中的23种设计模式
Java中的23种设计模式
9 1
|
9天前
|
Java 数据安全/隐私保护 Android开发
Java基础21-读懂Java序列化和反序列化(二)
Java基础21-读懂Java序列化和反序列化(二)
8 1
|
9天前
|
XML 存储 Java
Java基础21-读懂Java序列化和反序列化(一)
Java基础21-读懂Java序列化和反序列化(一)
11 1
|
9天前
|
IDE Java 编译器
Java基础20-从IDE的实现原理聊起,谈谈那些年我们用过的Java命令(二)
Java基础20-从IDE的实现原理聊起,谈谈那些年我们用过的Java命令(二)
11 2
|
2天前
|
设计模式 Java Spring
java设计模式总结
java设计模式总结
|
4天前
|
Java 大数据 API