zoukankan      html  css  js  c++  java
  • Java互评-OO之接口-DAO模式代码阅读及应用

    相关问题及回答

    1. StudenDaoListImpl.java与StudentDaoArrayImpl.java有何不同?
      • 答:StudenDaoListImpl.java通过List列表对StudentDao接口中方法的编写而StudentDaoArrayImpl.java则通过数组对StudentDao接口中方法的编写。
    2. StudentDao.java文件是干什么用的?为什么里面什么实现代码都没有?
      • 答:StudentDao.java只定义StudentDao接口,并且声明该接口相应的方法。
    3. 使用搜索引擎搜索“Java DAO”,选出几句你能看懂的、对你最有启发的话。请结合接口知识去理解。
      • 答: 语句1:“DAO 模式,通俗来讲,就是将数据库操作都封装起来。” 语句2:“隔离了数据访问代码和业务逻辑代码。” 个人理解:接口相当于一个标准,DAO对数据的操作方法可能不同,但都要通过接口这个标准,所以最终的结果都是一样的。
    4. 尝试运行Test.java。根据注释修改相应代码。结合参考代码回答使用DAO模式有什么好处?
      • 答:DAO模式只关心数据的写入跟读取。即使有不同的实现方法,但是最终的结果都是一样的。有利于程序各个部分的分工,提高程序的灵活性。

    5.编写一些使用DAO模式的代码。比如使用文件作为购物车存储底层。

    • 商品GoodsDAO接口
    package shoppingCartStorage;
    
    public interface GoodsDAO {
    	public boolean addGoods(Goods goods);
    	public Goods getGoodsByName(String name);
    	public Goods getGoodsByCode(String code);
    	public void diplayAllGoods();
    }
    
    • 商品类Goods
    package shoppingCartStorage;
    
    public class Goods {
    	private String name;
    	private String code;
    	private double price;
    	public Goods(String name,String code,double price) {
    		this.code=code;
    		this.name=name;
    		this.price=price;
    	}
    	public Goods() {
    		
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getCode() {
    		return code;
    	}
    	public void setCode(String code) {
    		this.code = code;
    	}
    	public double getPrice() {
    		return price;
    	}
    	public void setPrice(double price) {
    		this.price = price;
    	}
    	@Override
    	public String toString() {
    		return "Goods [name=" + name + ", code=" + code + ", price=" + price + "]";
    	}
    	
    }
    
    
    • 商品的List实现
    package shoppingCartStorage;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class GoodsDAOList implements GoodsDAO{
    	
    	private List<Goods> goods = new ArrayList<Goods>();
    	
    	@Override
    	public boolean addGoods(Goods good) {
    		goods.add(good);
    		return true;
    	}
    
    	@Override
    	public Goods getGoodsByName(String name) {
    		Goods temp=null;
    		for (Goods e : goods) {
    			if(e.getName().equals(name))temp=e;
    		}
    		return temp;
    	}
    
    	@Override
    	public Goods getGoodsByCode(String code) {
    		Goods temp=null;
    		for (Goods e : goods) {
    			if(e.getCode().equals(code))temp=e;
    		}
    		return temp;
    	}
    
    	@Override
    	public void diplayAllGoods() {
    		for(Goods e:goods){
    			if (e != null)
    				System.out.println(e);
    		}
    	}
    
    }
    
    • 测试代码
    package shoppingCartStorage;
    
    public class Test {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Goods [] goods=new Goods[5];
    		goods[0]=new Goods("Java学习笔记","BOOK001",35.1);
    		goods[1]=new Goods("黑色签字笔","PEN001",3.5);
    		goods[2]=new Goods("算法设计与分析","BOOK002",20.6);
    		goods[3]=new Goods("鼠标","MOU001",99.9);
    		goods[4]=new Goods("百草味","FOOD001",19.9);
    		
    		GoodsDAO gdm = new GoodsDAOList();
    		
    		System.out.println("======================读入商品数据======================");
    		for(Goods e:goods){
    			if (!gdm.addGoods(e)){
    				System.out.println("添加商品失败");
    			}else{
    				System.out.println("插入成功!!");
    			}
    		}
    		System.out.println("======================显示所有商品======================");
    		gdm.diplayAllGoods();
    		System.out.println("========================查询商品========================");
    		Goods temp = gdm.getGoodsByName("鼠标") ;
    		if(temp == null){
    			System.out.println("查询无果");
    		}else{
    			System.out.println("查询成功!");
    			System.out.println(temp);
    		}
    		temp = gdm.getGoodsByCode("BOOK001") ;
    		if(temp == null){
    			System.out.println("查询无果");
    		}else{
    			System.out.println("查询成功!");
    			System.out.println(temp);
    		}
    	}
    }
    
    • 测试结果
  • 相关阅读:
    旧贴-在 win7 / win8 下安装苹果系统 (懒人版)
    解决ios13摇一摇不能触发
    html+css面试合集
    Windows 2012 Server R2 添加用户
    Windows10专业版身份验证错误,可能由于CredSSP加密数据库修正
    STM32F4 7.STM32F4 独立看门狗
    STM32F4 6.STM32F4 外部中断
    STM32F4 5.STM32F4串口通讯
    STM32F4 4.STM32F4时钟系统
    STM32F4 3.GPIO按键输入,实现开关灯
  • 原文地址:https://www.cnblogs.com/gdlkblue/p/13873020.html
Copyright © 2011-2022 走看看