抽象工厂模式
原:
package java1;
import java. util. * ;
class User {
private int id;
private String name;
public int getId ( ) { return id; }
public void setId ( int id) { this . id= id; }
public String getName ( ) { return name; }
public void setName ( String name) { this . name= name; }
}
class SqlserverUser {
public void Insert ( User user) {
System. out. println ( "增加" ) ;
}
public User GetUser ( int id) {
System. out. println ( "输出" ) ;
return null;
}
}
public class Java1 {
public static void main ( String[ ] args) {
User user= new User ( ) ;
SqlserverUser su= new SqlserverUser ( ) ;
su. Insert ( user) ;
su. GetUser ( 1 ) ;
}
}
改:
package java1;
import java. util. * ;
class User {
private int id;
private String name;
public int getId ( ) { return id; }
public void setId ( int id) { this . id= id; }
public String getName ( ) { return name; }
public void setName ( String name) { this . name= name; }
}
interface IUser{
void Insert ( User user) ;
User GetUser ( int id) ;
}
class SqlserverUser implements IUser{
public void Insert ( User user) {
System. out. println ( "增加" ) ;
}
public User GetUser ( int id) {
System. out. println ( "输出" ) ;
return null;
}
}
class AccessUser implements IUser{
public void Insert ( User user) {
System. out. println ( "增加" ) ;
}
public User GetUser ( int id) {
System. out. println ( "输出" ) ;
return null;
}
}
interface IFactory{
IUser CreateUser ( ) ;
}
class SqlserverFactory implements IFactory{
public IUser CreateUser ( ) {
return new SqlserverUser ( ) ;
}
}
class AccessFactory implements IFactory{
public IUser CreateUser ( ) {
return new AccessUser ( ) ;
}
}
public class Java1 {
public static void main ( String[ ] args) {
User user= new User ( ) ;
IFactory factory= new SqlserverFactory ( ) ;
IUser iu= factory. CreateUser ( ) ;
iu. Insert ( user) ;
iu. GetUser ( 1 ) ;
}
}
原(增加部门):
package java1;
import java. util. * ;
class Department {
private int id;
private String deptName;
public String getDeptName ( ) { return deptName; }
public void setId ( int id) { this . id= id; }
public int getId ( ) { return id; }
public void setDeptName ( String name) { this . deptName= name; }
}
class User {
private int id;
private String name;
public int getId ( ) { return id; }
public void setId ( int id) { this . id= id; }
public String getName ( ) { return name; }
public void setName ( String name) { this . name= name; }
}
interface IUser{
void Insert ( User user) ;
User GetUser ( int id) ;
}
interface IDepartment{
void Insert ( Department department) ;
Department GetDepartment ( int id) ;
}
class SqlserverDepartment implements IDepartment{
public void Insert ( Department department) {
System. out. println ( "增加" ) ;
}
public Department GetDepartment ( int id) {
System. out. println ( "输出" ) ;
return null;
}
}
class AccessDepartment implements IDepartment{
public void Insert ( Department department) {
System. out. println ( "增加" ) ;
}
public Department GetDepartment ( int id) {
System. out. println ( "输出" ) ;
return null;
}
}
class SqlserverUser implements IUser{
public void Insert ( User user) {
System. out. println ( "增加" ) ;
}
public User GetUser ( int id) {
System. out. println ( "输出" ) ;
return null;
}
}
class AccessUser implements IUser{
public void Insert ( User user) {
System. out. println ( "增加" ) ;
}
public User GetUser ( int id) {
System. out. println ( "输出" ) ;
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 SqlserverDepartment ( ) ;
}
}
public class Java1 {
public static void main ( String[ ] args) {
IFactory factory= new SqlserverFactory ( ) ;
User user= new User ( ) ;
IUser iu= factory. CreateUser ( ) ;
iu. Insert ( user) ;
iu. GetUser ( 1 ) ;
Department department= new Department ( ) ;
IDepartment ic= factory. CreateDepartment ( ) ;
ic. Insert ( department) ;
ic. GetDepartment ( 1 ) ;
}
}
改:
package java1;
import java. util. * ;
class Department {
private int id;
private String deptName;
public String getDeptName ( ) { return deptName; }
public void setId ( int id) { this . id= id; }
public int getId ( ) { return id; }
public void setDeptName ( String name) { this . deptName= name; }
}
class User {
private int id;
private String name;
public int getId ( ) { return id; }
public void setId ( int id) { this . id= id; }
public String getName ( ) { return name; }
public void setName ( String name) { this . name= name; }
}
interface IUser{
void Insert ( User user) ;
User GetUser ( int id) ;
}
interface IDepartment{
void Insert ( Department department) ;
Department GetDepartment ( int id) ;
}
class SqlserverDepartment implements IDepartment{
public void Insert ( Department department) {
System. out. println ( "增加" ) ;
}
public Department GetDepartment ( int id) {
System. out. println ( "输出" ) ;
return null;
}
}
class AccessDepartment implements IDepartment{
public void Insert ( Department department) {
System. out. println ( "增加" ) ;
}
public Department GetDepartment ( int id) {
System. out. println ( "输出" ) ;
return null;
}
}
class SqlserverUser implements IUser{
public void Insert ( User user) {
System. out. println ( "增加" ) ;
}
public User GetUser ( int id) {
System. out. println ( "输出" ) ;
return null;
}
}
class AccessUser implements IUser{
public void Insert ( User user) {
System. out. println ( "增加" ) ;
}
public User GetUser ( int id) {
System. out. println ( "输出" ) ;
return null;
}
}
class DataAccess {
private static String db= "Sqlserver" ;
public static IUser CreateUser ( ) {
IUser result = null;
switch ( db) {
case "Sqlserver" :
result= new SqlserverUser ( ) ;
case "Access" :
result= new AccessUser ( ) ;
}
return result;
}
public static IDepartment CreateDepartment ( ) {
IDepartment result = null;
switch ( db) {
case "Sqlserver" :
result= new SqlserverDepartment ( ) ;
case "Access" :
result= new AccessDepartment ( ) ;
}
return result;
}
}
public class Java1 {
public static void main ( String[ ] args) {
User user= new User ( ) ;
IUser iu= DataAccess. CreateUser ( ) ;
iu. Insert ( user) ;
iu. GetUser ( 1 ) ;
Department department= new Department ( ) ;
IDepartment ic= DataAccess. CreateDepartment ( ) ;
ic. Insert ( department) ;
ic. GetDepartment ( 1 ) ;
}
}