第一步:创建抽象工厂对象
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();
}
}
}