java设计模式——抽象工厂模式
2013-02-19 21:04
549 查看
《大话设计模式》第十五章
抽象工厂模式和工厂方法模式很像,那么有什么区别吗?
工厂方法,返回一个具体的类型,比如Integer.valueOf,返回的是Integer的实例,而且Integer不是抽象类,是可以实例化的;
抽象工厂方法,返回的可能是任何的类型,Calendar.getInstance,返回的可能是BuddhistCalendar,也可能是JapaneseImperialCalendar,也可能是GregorianCalendar,而且Calendar是抽象类,不能实例化。
package ch15; public class User { private int id; private String name; public User(String name) { this.name = 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; } }
package ch15; public interface IUser { void insert(User user); User getUser(int id); }
package ch15; public class AccessUser implements IUser { public void insert(User user) { System.out.println("在Access里插入" + user.getName()); } public User getUser(int id) { System.out.println("在Access里根据ID得到User"); return null; } }
package ch15; public class SqlserverUser implements IUser { public void insert(User user) { System.out.println("在SQL Server里插入" + user.getName()); } public User getUser(int id) { System.out.println("在SQL Server里根据ID得到User"); return null; } }
package ch15; public interface IFactory { IUser createUser(); }
package ch15; public class AccessFactory implements IFactory { public IUser createUser() { return new AccessUser(); } }
package ch15; public class SqlserverFactory implements IFactory { public IUser createUser() { return new SqlserverUser(); } }
package ch15; /** * 抽象工厂模式 * @author Administrator * */ public class Client { /** * @param args */ public static void main(String[] args) { User user = new User("X"); IFactory factory = new SqlserverFactory(); IUser iu = factory.createUser(); iu.insert(user); iu.getUser(0); } }
抽象工厂模式和工厂方法模式很像,那么有什么区别吗?
工厂方法,返回一个具体的类型,比如Integer.valueOf,返回的是Integer的实例,而且Integer不是抽象类,是可以实例化的;
抽象工厂方法,返回的可能是任何的类型,Calendar.getInstance,返回的可能是BuddhistCalendar,也可能是JapaneseImperialCalendar,也可能是GregorianCalendar,而且Calendar是抽象类,不能实例化。
相关文章推荐
- Java设计模式编程中的工厂方法模式和抽象工厂模式
- java设计模式之抽象工厂模式
- Java设计模式之四:抽象工厂模式
- Java设计模式学习记录-抽象工厂模式
- JAVA设计模式(02):创建型-抽象工厂模式(Abstract Factory)
- Java设计模式--简单工厂、工厂、抽象工厂模式
- java 设计模式之工厂模式和抽象工厂模式
- JAVA设计模式(02):创建型-抽象工厂模式(Abstract Factory)
- JAVA设计模式之抽象工厂模式
- JAVA设计模式之抽象工厂模式
- JAVA设计模式之抽象工厂模式
- Java 可复用的面向对象的设计模式之 工厂模式Factory详解 :简单工厂模式 工厂方法模式 抽象工厂模式
- 《学习笔记》之JAVA设计模式--抽象工厂模式
- Java经典设计模式-创建型模式-抽象工厂模式(Abstract Factory)
- 浅谈JAVA设计模式之——抽象工厂模式(AbstractFactoty)
- Java设计模式--抽象工厂模式
- JAVA设计模式 — 抽象工厂模式(Abstract Factory)
- Java设计模式之抽象工厂模式
- Java设计模式--抽象工厂模式
- Java设计模式百例 - 抽象工厂模式