4.抽象工厂模式

来源:互联网 发布:淘宝订单信用清洗 编辑:程序博客网 时间:2024/06/05 19:37

package 抽象工厂模式;

//抽象用户
interface User{
    public void InsertUser();
 public void GetUser();
}


//Sqlserver用户
class SqlserverUser implements User{
 public void InsertUser(){
  System.out.println("在SQL Server中给User表增加一条记录");
 }
 public void GetUser(){
  System.out.println("在SQL Server中根据ID得到User表中的一条记录");
 }
}

//Oracle用户
class OracleUser implements User{
 public void InsertUser(){
  System.out.println("在Oracle中给User表增加一条记录");
 }
 public void GetUser(){
  System.out.println("在Oracle中根据ID得到User表中的一条记录");
 }
}


//抽象部门
 interface Department{
    public void InsertDepartment();
    public void GetUserDepartment();
 }
 
 
 //Sqlserver部门
 class SqlserverDepartment implements Department{
    public void InsertDepartment(){
  System.out.println("在SQL Server中给Department表增加一条记录");
    }
    public void GetUserDepartment(){
  System.out.println("在SQL Server中根据ID得到Department表中的一条记录");
    }
 }
 
 //Oracle部门
 class OracleDepartment implements Department{
    public void InsertDepartment(){
  System.out.println("在Oracle中给Department表增加一条记录");
    }
    public void GetUserDepartment(){
  System.out.println("在Oracle中根据ID得到Department表中的一条记录");
    }
}
 
//抽象工厂
 interface AbstractFactory{
  public User CreateUser();
  public Department CreateDepartment();
 }
 
 //Sqlserver工厂
 class SqlserverFactory implements AbstractFactory{
  public User CreateUser(){
   return new SqlserverUser();
  }
  public Department CreateDepartment(){
   return new SqlserverDepartment();
  }
 
 }
 
 //Oracle工厂
 class OracleFactory implements AbstractFactory{
  public User CreateUser(){
   return new OracleUser();
  }
  public Department CreateDepartment(){
   return new OracleDepartment();
  }
 
 }
public class TestClass {
    public static void main(String[] args) {

  AbstractFactory a=new OracleFactory();//只需改这里new OracleFactory()
  
  User b=a.CreateUser();
  b.InsertUser();
  b.GetUser();
  
  Department c=a.CreateDepartment();
     c.InsertDepartment();
  c.GetUserDepartment();
  
  

     }
}