抽象工厂实现数据库的插入数据和查询数据
class User {
private int id;
private String name;
public int getId() {
return id;
}
public void setId() {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Department {
private int id;
private String deptName;
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
}
interface IUser {
void Insert(User user);
User GetUser(int id);
}
class SqlserverUser implements IUser {
public void Insert(User user) {
System.out.println("在Sqlserver中给User表增加一条记录");
}
public User GetUser(int id) {
System.out.println("在Sqlserver中根据ID得到User表一条记录");
return null;
}
}
class AccessUser implements IUser {
public void Insert(User user) {
System.out.println("在Access中给User表增加一条记录");
}
public User GetUser(int id) {
System.out.println("在Access中根据ID得到User表一条记录");
return null;
}
}
interface IDepartment {
void Insert(Department dapartment);
Department GetDepartment(int id);
}
class SqlserverDepartment implements IDepartment {
public void Insert(Department department) {
System.out.println("在Sqlserver中给Department表增加一条记录");
}
public Department GetDepartment(int id) {
System.out.println("在Sqlserver中根据ID得到Department表一条记录");
return null;
}
}
class AccessDepartment implements IDepartment {
public void Insert(Department department) {
System.out.println("在Access中给Department表增加一条记录");
}
public Department GetDepartment(int id) {
System.out.println("在Access中根据ID得到Department表一条记录");
return null;
}
}
interface IFactory {
IUser CreateUser();
IDepartment CreateDepartment();
}
class SqlserverFactory implements IFactory {
public IUser CreateUser() {
return new SqlserverUser();
}
public IDepartment CreateDepartment() {
return new SqlserverDepartment();
}
}
class AccessFactory implements IFactory {
public IUser CreateUser() {
return new AccessUser();
}
public IDepartment CreateDepartment() {
return new AccessDepartment();
}
}
public class SQLserver {
public static void main(String[] args) {
// TODO Auto-generated method stub
IFactory factory = new SqlserverFactory();
User user = new User();
IUser iu = factory.CreateUser();
iu.Insert(user);
iu.GetUser(1);
Department dept = new Department();
IDepartment id = factory.CreateDepartment();
id.Insert(dept);
id.GetDepartment(1);
}
}
抽象工厂模式用简单工厂模式改进
class User {
private int id;
private String name;
public int getId() {
return id;
}
public void setId() {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Department {
private int id;
private String deptName;
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
}
interface IUser {
void Insert(User user);
User GetUser(int id);
}
class SqlserverUser implements IUser {
public void Insert(User user) {
System.out.println("在Sqlserver中给User表增加一条记录");
}
public User GetUser(int id) {
System.out.println("在Sqlserver中根据ID得到User表一条记录");
return null;
}
}
class AccessUser implements IUser {
public void Insert(User user) {
System.out.println("在Access中给User表增加一条记录");
}
public User GetUser(int id) {
System.out.println("在Access中根据ID得到User表一条记录");
return null;
}
}
interface IDepartment {
void Insert(Department dapartment);
Department GetDepartment(int id);
}
class SqlserverDepartment implements IDepartment {
public void Insert(Department department) {
System.out.println("在Sqlserver中给Department表增加一条记录");
}
public Department GetDepartment(int id) {
System.out.println("在Sqlserver中根据ID得到Department表一条记录");
return null;
}
}
class AccessDepartment implements IDepartment {
public void Insert(Department department) {
System.out.println("在Access中给Department表增加一条记录");
}
public Department GetDepartment(int id) {
System.out.println("在Access中根据ID得到Department表一条记录");
return null;
}
}
class DataAccess{
private static String db = "Sqlserver";//事先设定db的值为哪个数据库
public static IUser CreateUser() {
IUser result = null;
switch (db) {
case "Sqlserver" : result = new SqlserverUser();break;
case "Access" :result = new AccessUser();break;
}
return result;
}
public static IDepartment CreateDepartment() {
IDepartment result = null;
switch(db) {
case "Sqlserver" : result = new SqlserverDepartment();break;
case "Access" : result = new AccessDepartment();break;
}
return result;
}
}
public class SQLserver {
public static void main(String[] args) {
// TODO Auto-generated method stub
User user = new User();
IUser iu = DataAccess.CreateUser();
iu.Insert(user);
iu.GetUser(1);
Department dept = new Department();
IDepartment id = DataAccess.CreateDepartment();
id.Insert(dept);
id.GetDepartment(1);
}
}