首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 設計模式實戰總結:分層架構、VO、工廠、DAO 與面向介面編程完整示例

     編輯:Java 綜合教學

專案包結構:標準分層規範

cn.hncu.app
├── ui              // 表現層
├── business        // 邏輯層
│   ├── ebi         // 業務介面
│   ├── factory     // 業務工廠
│   └── impl        // 業務實現
├── dao             // 數據層
│   ├── dao         // DAO 介面
│   ├── factory     // DAO 工廠
│   └── impl        // DAO 實現
├── vo              // 值對象
└── utils           // 工具類

命名規範:前綴.項目.模塊.層,公共類歸 common/base,工具類歸 util/tool。

核心設計模式應用

1. 值對象(VO)區分數據與查詢

// 封裝數據記錄
public class User implements Serializable {
    private String name; private int age;
    // getter/setter, equals/hashCode 基於 name+age
}

// 封裝查詢條件(擴展字段)
public class UserQueryVO extends User {
    private String ageRange; // 如 "20-30"
}

2. DAO 模式 + 工廠方法

// 介面
public interface UserDAO {
    boolean addUser(User u);
    Object[] getAllUsers();
    // ... CRUD
}

// 工廠:解耦具體實現
public class UserDaoFactory {
    public static UserDAO getUserDAO() { return new UserDaoFileIO(); }
}

// 文件存儲實現
public class UserDaoFileIO implements UserDAO {
    private static final String FILE = "user.txt";
    public boolean addUser(User u) { return FileIO.write(FILE, u); }
    public Object[] getAllUsers() { return FileIO.read(FILE); }
    // ...
}

3. 業務層(EBI)同樣面向介面 + 工廠

public interface UserEbi { boolean addUser(User u); Object[] getAllUser(); }

public class UserEbo implements UserEbi {
    public boolean addUser(User u) {
        return UserDaoFactory.getUserDAO().addUser(u);
    }
}

4. 表現層:Swing 面板調用業務介面

public class UserAddPanel extends JPanel {
    private void jButton1ActionPerformed(ActionEvent evt) {
        User user = new User(tfdName.getText(), Integer.parseInt(tfdAge.getText()));
        UserEbi eb = UserEbiFactory.getUserEbi();
        if (eb.addUser(user)) {
            JOptionPane.showMessageDialog(this, "添加成功");
            mainFrame.setContentPane(new UserListPanel(mainFrame));
        }
    }
}

設計原則體現

  • 依賴倒轉:上層依賴介面,工廠注入實現。
  • 單一職責:VO 只存數據,DAO 只管持久化,EBI 只管業務流程,UI 只管交互。
  • 開閉原則:換存儲只需新增 DAO 實現並修改工廠,業務層、UI 零修改。
  • 合成復用:EBI 組合 DAO,而非繼承。

遞歸設計與增量實現

設計時自頂向下:系統 → 子系統 → 模塊 → 組件 → 類。
實現時自底向上:類 → 組件 → 模塊 → 子系統 → 系統,每層測試通過再集成。

通用 DAO 介面模板

public interface BaseDAO<T, Q> {
    boolean add(T entity);
    boolean delete(String id);
    boolean update(T entity);
    T getById(String id);
    List<T> getAll();
    List<T> getByCondition(Q queryVO);
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved