工厂模式

工厂模式:

 

       工厂模式是根据调用数据返回某个类的一个实例,此类可以是多个类的某一个类。通常这些类满足共同的规则(接口)或父类。调用

       着只关心工厂生产的实例是否满足某种规范,即实现的某个接口是否可供自己正常调用(调用者仅仅使用)。接口生产的全部实例通

       常用于实现相同接口,接口里定义了全部实例共同拥有的方法,这些方法在不同的实现类中实现的方式不同。程序调用者无需关心方

       法的具体实现。

 

 

       工厂模式的示例代码如下:

       //定义一个Person接口

       public interface Person

       {

              public String sayHello(String name);

 

              public String sayGoodBye(String name);

       }

      

       //Person接口要求实现该接口的类必须具有这两个方法。

       public class American implements Person

       {

              public String sayHello(String name)

              {

                     return name + ", Hello";

              }

 

              public String sayGoodBye(String name)

              {

                     return name + ", Goodbye...";

              }

       }

 

       public class Chinese implements Person

       {

              public String sayHello(String name)

              {

                     return name + ", 您好";

              }

 

              public String sayHello(String name)

              {

                     return name + ", 再见!";

              }

       }

 

       //Person工厂的代码

       public class PersonFactory

       {

              public Person getPerson(String ethnic)

              {

                     if(ethnic.equalsIgnoreCase("chin"))

                     {

                            return new Chinese();

                     }

                     else

                     {

                            return new American();

                     }

              }

       }

 

       public class FactoryTest

       {

              public static void main(String[] args)

              {

                     PersonFactory pf = new PersonFactory();

                     //定义接口的实例

                     Person person = null;

                     //获得Person的实例

                     person = pf.getPerson("chin");

                     //调用Person接口的方法

                     System.out.println(person.sayHello("Mark"));

                     System.out.println(person.sayGoodBye("Mark"));

                    

                     //使用Person的另一个实例

                     person = pf.getPeson("ame");

                     System.out.println(person.sayHello("Mark"));

                     System.out.println(person.sayGoodBye("Mark"));

 

              }

       }

UML图示如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值