Java设计模式《十一》抽象工厂模式
来源:互联网 发布:苹果软件图标不见了 编辑:程序博客网 时间:2024/06/03 15:22
//抽象工厂模式 提供一个创建一系列相关或者相互依赖对象的接口 而无须指定的他们具体的类
public interface IDepartment{ public void Insert(Department department); public Department GetDepartment(int id);}//被DataAccess类替代public interface IFactory{ IUser CreateUser(); IDepartment CreateDepartment();}public interface IUSer{ public void Insert(User user); pullic User GetUser(int id);}
public class implements IFactory{ public IUser CreateUser(){ return new SqlserverUser(); } public IDepartment CreateDepartment(){ return new SQLserverDepartment(); }}public class AccessFactory implements IFactory{ public IUser createUser(){ retturn new AccessUser(); } public IDepartment CreateDepartment(){ return new AccessDepartment(); }}public class SqlserverUser implements IUSer{ public void Insert(User user){ System.out.prinltn("Insert Sqlserver User"); } public User GetUser(int id){ System.out.prinltn("Get Sqlserver User"); return null; }}public class AccessUser implements IUser{ public void insert(User user){ System.out.prinltn("Insert Access User"); } public User GetUser(int id){ System.out.prinltn("Get Access User"); return null; }}public class AccessDepartment implements IDepartment{ public void Insert(Department department){ System.out.prinltn("Insert Access Department"); } public Department GetDepartment(int id){ System.out.prinltn("Get Access Department"); return null; }}public class SQLserverDepartment implements IDepartment{ public void Insert(Department department){ System.out.prinltn("Insert into SQlServer"); } public Department GetDepartment(int id){ System.out.prinltn("Get SQlServer Department"); return null; }}public class Department implements IDepartment{ public void Insert(Department department){ System.out.prinltn("Insert Department"); } public Department GetDepartment(int id){ System.out.prinltn("Get Department"); return null; }}
public class User{ private int id; private String name; public int getId() { return id; } public String getName() { return name; } public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; }}
//使用简单工厂来改进抽象工厂 可以抛弃Ifactory AccessFactory SqlFactory 三个工厂类public class DataAccess{ private static final String db ="SQlServer";//可以使用反射技术 在配置文件中配置数据库字符串 public static IUSer CreateUser(){ if(db.equals("SQlServer")){ return new SQlServer(); } if(db.equals("Access")){ return new AccessUser(); } return null; } public static IDepartment CreateDepartment(){ if(db.equals("SQlServer")){ return new SQLserverDepartment(); } if(db.equals("Access")){ return new AccessDepartment(); } return null; }}
0 0
- Java设计模式《十一》抽象工厂模式
- 设计模式(十一)抽象工厂模式
- 设计模式—抽象工厂(十一)
- 十一、抽象工厂模式
- java设计模式--抽象工厂
- Java设计模式-抽象工厂
- Java设计模式--抽象工厂
- java设计模式-抽象工厂
- Java设计模式-抽象工厂设计模式
- 设计模式之(十一、抽象工厂模式Abstract Factory)
- <十一>读<<大话设计模式>>之抽象工厂模式
- 设计模式C++实现十一:抽象工厂模式
- 设计模式之十一:抽象工厂模式(Abstract Factory)
- 十一、抽象工厂模式——设计模式学习笔记
- java设计模式之抽象工厂模式
- JAVA设计模式之抽象工厂模式
- Java设计模式_抽象工厂模式
- Java设计模式之抽象工厂模式
- C#参考:Linq 概述
- mount device or resource busy
- context和getApplicationContext()
- Qt判断文件 或 文件夹(路径)是否存在
- Docker for Windows 中文文档(3)——Docker Settings
- Java设计模式《十一》抽象工厂模式
- 用javascript实现图片等比例缩放
- 数据结构之数组和链表
- 第八届蓝桥杯取数位
- Python中property属性(特性)的理解
- Springboot 不同环境配置
- Java设计模式《十二》状态模式
- Cocos Creator 组件的生命周期和回调函数
- ZooKeeper伪分布式集群安装及使用