JAVA设计模式二:--Abstract Factory(抽象工厂)
来源:互联网 发布:法国进出口数据 编辑:程序博客网 时间:2024/05/22 19:26
点击打开转载处链接
抽象工厂模式:
提供一个创建一系列相关活相互依赖对象的接口,而无需指定他们具体的类。
举2个例子:
1.BOSS要求提供JDBC,Hibernate,Ibatis等多套数据库操作解决方案,能够无成本地在这三个解决方案间切换。
2.系统的产品有多于一个的产品族,而系统只消费其中某一族的产品(Unix&Windows)
Button--->UnixButton/WinButton
Text----->UnixText/WinText
Unix产品族和Windows产品族,不会同时使用。
创建猫类,实现超级接口:
抽象工厂模式:
提供一个创建一系列相关活相互依赖对象的接口,而无需指定他们具体的类。
举2个例子:
1.BOSS要求提供JDBC,Hibernate,Ibatis等多套数据库操作解决方案,能够无成本地在这三个解决方案间切换。
2.系统的产品有多于一个的产品族,而系统只消费其中某一族的产品(Unix&Windows)
Button--->UnixButton/WinButton
Text----->UnixText/WinText
Unix产品族和Windows产品族,不会同时使用。
Factory--->UnixFactory/WinFactory
如图所示:
举例说明:
首先创建超级接口:
- package design.abstractfactory;
- /**
- * 文件名称:design.singleton.Singleton.java
- * 创建人:Fei Wong
- * 创建时间: 2012-06-20
- * 电子邮箱:feiwong8@126.com
- * 举例:举例动物
- * */
- public interface IAnimalDAO {
- /**
- * 动物的公有的活动,吃 睡 喝
- * */
- void eat() ;
- void sleep() ;
- void drink() ;
- }
创建狗类,实现超级接口:
- package design.abstractfactory;
- /**
- * 文件名称:design.singleton.Singleton.java
- * 创建人:Fei Wong
- * 创建时间: 2012-06-20
- * 电子邮箱:feiwong8@126.com
- * 类说明,具体到狗这个动物,实现动物这个超级接口,
- * 然后实现狗是如何吃饭、喝水和睡觉的。
- * */
- public class Dog implements IAnimalDAO {
- @Override
- public void drink() {
- System.out.println( "小狗喝水" );
- }
- @Override
- public void eat() {
- System.out.println( "小狗吃饭" );
- }
- @Override
- public void sleep() {
- System.out.println( "小狗睡觉。。。" );
- }
- }
创建猫类,实现超级接口:
- package design.abstractfactory;
- /**
- * 文件名称:design.singleton.Singleton.java
- * 创建人:Fei Wong
- * 创建时间: 2012-06-20
- * 电子邮箱:feiwong8@126.com
- * 类说明,具体到猫这个动物,实现动物这个超级接口,
- * 然后实现猫是如何吃饭、喝水和睡觉的。
- * */
- public class Cat implements IAnimalDAO {
- @Override
- public void drink() {
- System.out.println( "小猫喝水" );
- }
- @Override
- public void eat() {
- System.out.println( "小猫吃饭" );
- }
- @Override
- public void sleep() {
- System.out.println( "小猫睡觉。。" );
- }
- }
创建工厂类,用来生产小猫和小狗:
- package design.abstractfactory;
- public class Factory {
- public static IAnimalDAO createDog() {
- return new Dog();
- }
- public static IAnimalDAO createCat() {
- return new Cat();
- }
- }
创建Main方法:
- package design.abstractfactory;
- public class Main {
- public static void main(String[] args) {
- IAnimalDAO animal = Factory.createDog() ; // 这里需要Dog这种动物
- animal.eat() ;
- animal.drink() ;
- animal.sleep() ;
- animal = Factory.createCat() ; //这里需要Cat这种动物
- animal.eat() ;
- animal.drink() ;
- animal.sleep() ;
- }
- }
- JAVA设计模式二--Abstract Factory(抽象工厂)
- JAVA设计模式二:--Abstract Factory(抽象工厂)
- Java设计模式二:抽象工厂模式(Abstract Factory)/工厂方法(Factory Method)
- 设计模式(二)[抽象工厂(Abstract Factory)模式]
- 设计模式(二)之Abstract Factory - 抽象工厂模式
- 设计模式之二(抽象工厂模式)(Abstract Factory)
- 学习设计模式之二:抽象工厂模式(Abstract Factory)
- 设计模式之二 抽象工厂模式(Abstract Factory)
- Java设计模式-----Abstract Factory抽象工厂模式
- Java设计模式之抽象工厂(Abstract Factory)模式
- JAVA设计模式之抽象工厂(Abstract Factory)模式
- Java设计模式-----Abstract Factory抽象工厂模式
- Java设计模式-----Abstract Factory抽象工厂模式
- JAVA设计模式 — 抽象工厂模式(Abstract Factory)
- Java:设计模式之抽象工厂模式(Abstract Factory)
- Java设计模式 - 抽象工厂模式(Abstract Factory)
- JAVA设计模式之 抽象工厂模式【Abstract Factory Pattern】
- Java设计模式-抽象工厂模式(Abstract Factory)
- 5、backbone中的Router实例
- POI操作Excel出错:java.lang.IncompatibleClassChangeError
- 三个相同的字组成重字读法
- uva11549 - Calculator Conundrum(计算机谜题)
- 黑马程序员--java IO流(一)
- JAVA设计模式二:--Abstract Factory(抽象工厂)
- POJ_3415 Common Substrings 后缀数组
- struts的工作原理
- S3C6410处理器介绍
- 详解FusionChart图表控件点击事件
- MFC内存泄露与检测
- SQLite3介绍及使用方法
- 感悟
- double与string类型之间的转换