一种基础的 java dao 设计思路

  1. 类图
  2. 核心代码
    1. IBaseDao
    2. BaseDaoImpl
    3. IAppleDao
    4. AppleDaoImpl
    5. AppleServiceImpl (通过组合方式)

这是简单、常见的 dao 层设计思路

类图

核心代码

IBaseDao

package com.shar.generic.dao;

public interface IBaseDao<T> {
    void update(T t);
}

BaseDaoImpl

package com.shar.generic.dao;

import java.lang.reflect.ParameterizedType;

public class BaseDaoImpl<T> implements IBaseDao<T> {

    private final Class<T> clz;

    public BaseDaoImpl() {
        this.clz = (Class<T>) ((ParameterizedType) this.getClass().getGenericSuperclass())
                .getActualTypeArguments()[0];
    }

    @Override
    public void update(T t) {
        System.out.println(clz.getName());
        System.out.println(t);
    }
}

IAppleDao

package com.shar.generic.apple.dao;

import com.shar.generic.apple.entity.Apple;
import com.shar.generic.dao.IBaseDao;

public interface IAppleDao extends IBaseDao<Apple> {}

AppleDaoImpl

package com.shar.generic.apple.dao;

import com.shar.generic.apple.entity.Apple;
import com.shar.generic.dao.BaseDaoImpl;

public class AppleDaoImpl extends BaseDaoImpl<Apple> implements IAppleDao {}

AppleServiceImpl (通过组合方式)

package com.shar.generic.apple.service;

import com.shar.generic.apple.dao.IAppleDao;
import com.shar.generic.apple.entity.Apple;

public class AppleServiceImpl implements IAppleService {

    private IAppleDao appleDao;

    @Override
    public void update(Apple apple) {
        appleDao.update(apple);
    }
}

转载请注明来源。 欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。 可以在下面评论区评论,也可以邮件至 sharlot2050@foxmail.com。

文章标题:一种基础的 java dao 设计思路

字数:207

本文作者:夏来风

发布时间:2020-10-22, 23:08:36

原始链接:http://www.demo1024.com/blog/java-basedao/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。