java 抽象工厂模式
来源:互联网 发布:人工智能有哪些分支 编辑:程序博客网 时间:2024/05/17 01:48
第一步:创建抽象工厂对象
package Abstract_Factory.AbstractFactory;
import Abstract_Factory.IAbstract.Ieating;
import Abstract_Factory.IAbstract.Ispeaking;
/*
* 说明:(1)首先创建抽象工厂类Person_eatingFactory
* (2)抽象工厂提供具体动作(操作)的接口对象,并返回接口对象。
* @author 谢泽鹏
* @createDate 2011-7-7 上午10:51:15
* @type interface
*/
public interface PersonAbstractFactory {
/*
* 返回接口对象
* @return Ieating
* @throws Exception
* 由具体的工厂对象实现该接口
*/
Ieating Create_eating() throws Exception;
/*
* 返回接口对象
* @return
* @throws Exception
* 由具体的工厂对象实现该接口
*/
Ispeaking Creat_speaking() throws Exception;
}
第二步:创建代理工厂(具体工厂)对象,
(1)代理工厂1
package Abstract_Factory.AbstractFactory;
import Abstract_Factory.IAbstract.Ieating;
import Abstract_Factory.IAbstract.Ispeaking;
import Abstract_Factory.ImplAbstract.IeatingImpl;
import Abstract_Factory.ImplAbstract.IspeakingImpl;
/*
* 说明:(1)代理工厂(子工厂)实现抽象工厂类,并创建具体动作(方法)。
* (2)具体动作实现交给具体实现类来完成,并返回。
* @author 谢泽鹏
* @createDate 2011-7-7 上午10:57:40
*
*/
public class Person_speakingFactory implements PersonAbstractFactory {
/返回具体实现接口操作对象/
public Ispeaking Creat_speaking() throws Exception {
return new IspeakingImpl();
}
/返回具体实现接口操作对象/
public Ieating Create_eating() throws Exception {
return new IeatingImpl();
}
}
(2)代理工厂2
package Abstract_Factory.AbstractFactory;
import Abstract_Factory.IAbstract.Ieating;
import Abstract_Factory.IAbstract.Ispeaking;
/*
* 说明:(1)首先创建抽象工厂类Person_eatingFactory
* (2)抽象工厂提供具体动作(操作)的接口对象,并返回接口对象。
* @author 谢泽鹏
* @createDate 2011-7-7 上午10:51:15
* @type interface
*/
public interface PersonAbstractFactory {
/*
* 返回接口对象
* @return Ieating
* @throws Exception
* 由具体的工厂对象实现该接口
*/
Ieating Create_eating() throws Exception;
/*
* 返回接口对象
* @return
* @throws Exception
* 由具体的工厂对象实现该接口
*/
Ispeaking Creat_speaking() throws Exception;
}
第三步:创建具体接口对象
(1)接口1
package Abstract_Factory.IAbstract;
/*
* 说明: 用户提供相关动作(操作)接口。
* @author Administrator
* @createDate 2011-7-7 上午11:36:10
*/
public interface Ieating {
/**声明吃米饭方法**/void eatRice() throws Exception;
}
(2)接口2
package Abstract_Factory.IAbstract;
/*
* 说明: 用户提供相关动作(操作)接口。
*
* @author 谢泽鹏
* @createDate 2011-7-7 上午11:36:51
*/
public interface Ispeaking {
/声明说英语的方法/
void speakEnglish() throws Exception;
/说汉语的方法/
void speakChinese() throws Exception;
}
第四步: 创建接口实现类对象
(1)第1个实现类
package Abstract_Factory.ImplAbstract;
import Abstract_Factory.IAbstract.Ieating;
/*
* 实现用户具体动作(操作)接口类
* @author 谢泽鹏
* @createDate 2011-7-7 上午11:37:50
*/
public class IeatingImpl implements Ieating{
/具体动作实现操作/
public void eatRice() throws Exception {
System.out.println(“——————————”);
System.out.println(“我吃的的米饭 ,Rice !!!”);
}
}
(2) 第2个实现类
package Abstract_Factory.ImplAbstract;
import Abstract_Factory.IAbstract.Ispeaking;
/*
* 实现用户具体动作(操作)接口类
* @author 谢泽鹏
* @createDate 2011-7-7 上午11:37:50
*/
public class IspeakingImpl implements Ispeaking{
/具体动作实现操作/
public void speakEnglish() throws Exception {
System.out.println(“————开始学习英语—————–”);
System.out.println(“学习中……………………………..”);
System.out.println(“I Can Speak English !”);
}
/具体动作实现操作/
public void speakChinese() throws Exception {
System.out.println(“————开始学习汉语—————–”);
System.out.println(“学习中……………………………..”);
System.out.println(“我可以说汉语: 我是中国人!!!”);
}
}
第五步 Celint测试概要
package Abstract_Factory.Celint;
import Abstract_Factory.AbstractFactory.PersonAbstractFactory;
import Abstract_Factory.AbstractFactory.Person_eatingFactory;
import Abstract_Factory.AbstractFactory.Person_speakingFactory;
public class Test_AbstractFactory {
/**
* 抽象工厂测试演示
* @param args
*/
public static void main(String[] args) {
/*
* 说明:(1)抽象工厂指向具体工厂(代理工厂)实现。
* (2) 由抽象工厂创建具体接口对象
*/
try {
//(1)形式1
PersonAbstractFactory personAbstractFactory_One=new Person_eatingFactory();
/获取到工厂对象,就可具体实例,调用具体方法/
personAbstractFactory_One.Creat_speaking().speakEnglish();
personAbstractFactory_One.Creat_speaking().speakChinese();
personAbstractFactory_One.Create_eating().eatRice();
//(1)形式2
PersonAbstractFactory personAbstractFactory_Two=new Person_speakingFactory();
/获取到工厂对象,就可具体实例,调用具体方法/
personAbstractFactory_Two.Creat_speaking().speakEnglish();
personAbstractFactory_Two.Creat_speaking().speakChinese();
personAbstractFactory_Two.Create_eating().eatRice();
} catch (Exception e) {
e.printStackTrace();
}
}
}
- java抽象工厂模式
- java抽象工厂模式
- java 抽象工厂模式
- Java抽象工厂模式
- java 抽象工厂模式
- Java 抽象工厂模式
- java 抽象工厂模式
- Java 抽象工厂模式
- JAVA抽象工厂模式
- java抽象工厂模式
- 【Java】抽象工厂模式
- JAVA-抽象工厂模式
- Java 抽象工厂模式
- java 抽象工厂模式
- JAVA抽象工厂模式
- Java抽象工厂模式
- java 抽象工厂模式
- java 抽象工厂模式
- apk交互时保留页面框架
- 给solr配置中文分词器
- android studio 中svn不能清理代码的解决
- 4.redis的简单使用
- 排序方法汇总
- java 抽象工厂模式
- 利用SharePoint 2013 创建Service Desk 网站之利用SharePoint Designer设定邮件发送动作!
- 尺取法还是蚯蚓法
- web项目的压缩作用,操作指南
- 【POJ】2631 - Roads in the North(树的直径)
- 剑指Offer----面试题41(1):和为s的两个数字
- eclipse使用问题:预置User Libraries导致web项目启动找不到包
- 关于java字符集转码的问题
- web框架选型