抽象工厂模式用简单工厂模式改进

抽象工厂实现数据库的插入数据和查询数据

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);
	}
}
发布了4 篇原创文章 · 获赞 0 · 访问量 64

猜你喜欢

转载自blog.csdn.net/qq_44716990/article/details/105427398