工厂模式

         工厂模式是将对象的创建标准化。

 

         interface Work {

                  public void doWork();

         }

 

         class TeacherWork implements Work {

        

                   @Override

                  public void doWork() {

                            System.out.println("老师上课!");

                  }

         }

 

         class StudentWork implements Work {

                  @Override

                  public void doWork() {

                            System.out.println("学生学习!");

                  }

         }

/

         interface WorkFactory {

 

                  public Work getWork();

 

         }

 

         class TeacherWorkFactory implements WorkFactory {

                  @Override

                   public Work getWork() { // 工厂方法

                            return new TeacherWork(); // 生产产品

                  }

         }

 

         class StudentWorkFactory implements WorkFactory {

                  @Override

                   public Work getWork() { // 工厂方法

                            return new StudentWork();

                  }

         }

 

         public class FactoryTest {

        

                   public static void test(WorkFactory factory) { // 多态参数,体现面向接口, 对象是什么不重要, 重要的是对象具有什么能力!!

                            Work work = factory.getWork(); // 既然是工厂, 就可以生产产品, 产品如何生产,质量如何 都不关心, 只关心能拿到合格产品即可

                            work.doWork(); // 拿到产品直接使用.

                  }

        

                  public static void main(String[] args) {

                            // 客户端

                            WorkFactory factory1 = new TeacherWorkFactory();

                            test(factory1);

                  

                            WorkFactory factory2 = new StudentWorkFactory();

                            test(factory2);

                  

         }

 

         上面的代码就是实现工厂模式的过程。在外部只需要创建工厂对象,然后利用工厂对象来获得产品对象。test()方法是一个比较通用的方法,利用了工厂类的多态,可以实现相同的代码实现不同的效果。

         整个过程是分两条生产线进行的:老师工厂-->老师;学生工厂-->学生。工厂模式的好处是创建对象的形式已经固定,创建者不能自己随意更改创建形式和过程。

 

 

                                                                                                                            by Karl

转载于:https://my.oschina.net/karl0/blog/761426

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值