Java三层命名

在软件开发中,Java是一种常用的编程语言,具有面向对象的特性。为了使代码结构清晰、易于维护和扩展,我们常常使用三层命名的架构。这种架构将代码分为三个层次:表示层、业务逻辑层和数据访问层。每个层次都有自己的职责和功能,彼此之间通过接口进行通信。

表示层

表示层是用户与系统之间的接口,负责接收用户的输入和显示系统的输出。在Java中,我们常常使用图形用户界面(GUI)来实现表示层。例如,我们可以使用Swing库来创建窗口、按钮、文本框等GUI组件。

下面是一个简单的Java代码示例,演示了如何使用Swing库创建一个窗口,并在窗口中添加一个按钮。

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class GUIExample {
    public static void main(String[] args) {
        // 创建窗口
        JFrame frame = new JFrame("Hello World");

        // 创建按钮
        JButton button = new JButton("Click Me");
        button.addActionListener(e -> {
            // 按钮点击事件处理逻辑
            JOptionPane.showMessageDialog(null, "Hello World");
        });

        // 将按钮添加到窗口中
        frame.getContentPane().add(button);

        // 设置窗口大小和关闭操作
        frame.setSize(300, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 显示窗口
        frame.setVisible(true);
    }
}

在上述代码中,我们创建了一个JFrame对象表示窗口,并设置了窗口的标题为"Hello World"。然后,我们创建了一个JButton对象表示按钮,并给按钮添加了一个点击事件监听器。当用户点击按钮时,会弹出一个对话框显示"Hello World"。最后,我们将按钮添加到窗口中,并设置窗口的大小和关闭操作。最后,我们调用setVisible(true)方法显示窗口。

业务逻辑层

业务逻辑层负责处理与业务相关的逻辑和算法。它在表示层和数据访问层之间进行通信,并将用户的请求转化为对数据访问层的操作。在Java中,我们可以使用类和方法来组织和实现业务逻辑。

下面是一个简单的Java代码示例,演示了如何实现一个计算器的业务逻辑。

public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }

    public int subtract(int a, int b) {
        return a - b;
    }

    public int multiply(int a, int b) {
        return a * b;
    }

    public int divide(int a, int b) {
        if (b == 0) {
            throw new IllegalArgumentException("Divisor cannot be zero");
        }
        return a / b;
    }
}

在上述代码中,我们创建了一个名为Calculator的类,包含了四个方法:addsubtractmultiplydivide,分别实现了加法、减法、乘法和除法的功能。在divide方法中,我们检查除数是否为零,如果是,则抛出一个异常。

数据访问层

数据访问层负责与数据库或其他数据存储系统进行通信,并执行数据的读取、写入和更新操作。在Java中,我们可以使用JDBC(Java Database Connectivity)库来实现数据访问层。

下面是一个简单的Java代码示例,演示了如何使用JDBC库连接到数据库并执行查询操作。

import java.sql.*;

public class DatabaseExample {
    public static void main(String[] args) throws SQLException {
        // 连接到数据库
        String url = "jdbc:mysql://localhost:3306/mydatabase";
        String username = "root";
        String password = "123456";
        Connection connection = DriverManager.getConnection(url, username, password);

        // 执行查询
        String sql = "SELECT * FROM users";
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery(sql);

        // 处理查询结果
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            System.out.println("ID: " + id + ", Name: