java 抽象工厂模式

第一步:创建抽象工厂对象

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();
}

}

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值