java有段DAO看不明白

来源:百度知道 编辑:UC知道 时间:2024/06/01 01:52:37
package netbar.dao;

public class Computer {
private String id;
private String onuse;
private String notes;
public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public void setOnuse(String onuse) {
this.onuse = onuse;
}

public void setNotes(String notes) {
this.notes = notes;
}

public String getNotes() {
return notes;
}

public String getOnuse() {
return onuse;
}
}
========================================以上是一个javabean
public List queryComputer(Computer computer) {
List computers = new ArrayList();
try {
Statement str = con.createStatement();
ResultSet que = str.executeQuery("select * from computer where onUse='0'");
while (que.next()) {
computers.add(que.getString

消极的理解就是没事找事!
积极的理解是这样的:
比如说:针对接口编程你的dao有一接口 :
interface DAOIf
{public queryComputer(Computer computer);
}
有人有了一个实现类
class DAOA implements DAOIf
{public queryComputer(Computer computer)
{System.out.println("我就不用你传入的参数,我的业务根本就不需要);
}

后来有人发现queryComputer方法的参数还得必须用,于是又写了一个实现类
class DAOB implements DAOIf
{public queryComputer(Computer computer)
{System.out.println("我就要用你传入的参数,我的业务很需要这个参数);
System.out.pritnln(computer.getOnuse);
}}

在调用的时候:

如果我不需要使用那个参数:

DAOIf dao = new DAOA();
dao.queryComputer(null);

如果我需要使用那个参数:

DAOIf dao = new DAOB();
Computer computer = new Computer();
dao.queryComputer(computer);

这样在我不修改接口的情况下,我的不同实现类实现了不同的业务逻辑
当然你也可以在接口中定义一个有参的方法和一个无参的方法,但是这样以来,你的每一个实现类都要实现两个方法,这样是不是又有点没事找事了呢?
在者,在系统设计的时候,一般都要在重要的方法参数表中故意加几个没用的参数,目的就是为了以后业务的变化,不会影响到我方法名的修改,我只用修改方法的实现就可以了

可以参考一下著名的“费改税”事