设计模式二—工厂方法模式

设计模式二—工厂方法模式

一、工厂方法模式优点

良好的封装性

优秀的可扩展性

屏蔽产品类

典型的解耦架构

 

二、实例

 

三、实例代码

1、Fruit.java

public interface Fruit {

   /*

    * 生长

    * 收获

    * 栽种

    */

   public void grow();

   public void harvest();

   public void plant();

}

 

2、FruitGardener.java

public interface FruitGardener {

   /*

    * 水果园丁

    * 建立水果工厂的方法

    */

  

   public Fruit factory();

  

  

}

3、Apple.java

public class Apple implements Fruit {

 

   private int treeAge;

  

   public void grow() {

     System.out.println("苹果正在生长,,,");

   }

 

  

   public void harvest() {

     System.out.println("收获苹果");

   }

 

  

   public void plant() {

     System.out.println("栽种苹果");

   }

 

 

   public int getTreeAge() {

     return treeAge;

   }

 

 

   public void setTreeAge(int treeAge) {

     this.treeAge = treeAge;

   }

  

  

 

}

4、Grape.java

public class Grape implements Fruit {

   private boolean seedless;

  

   public void grow() {

     System.out.println("葡萄正在生长。。。");

   }

 

   public void harvest() {

     System.out.println("收获葡萄。");

   }

 

   public void plant() {

     System.out.println("栽种葡萄。");

   }

 

   public boolean isSeedless() {

     return seedless;

   }

 

   public void setSeedless(boolean seedless) {

     this.seedless = seedless;

   }

  

  

 

}

5、AppleGardener.java

public class AppleGardener implements FruitGardener {

 

   public Fruit factory() {

     return new Apple();

   }

 

}

 

 

6、GrapeGardener.java

public class GrapeGardener implements FruitGardener {

 

   public Fruit factory() {

     return new Grape();

   }

 

}

 

7、ClientDemo.java

public class ClientDemo {

 

   public static void main(String[] args) {

     //苹果园丁工厂

     FruitGardener fruitGardener=new AppleGardener();

     //通过工厂生产苹果

     Fruit apple = fruitGardener.factory();//用接口代替了实现实例

     apple.plant();

     apple.grow();

     apple.harvest();

 

     //葡萄园丁工厂

     fruitGardener=new AppleGardener();

     //通过工厂生产葡萄

     Fruit grape = fruitGardener.factory();//用接口代替了实现实例

     grape.plant();

     grape.grow();

     grape.harvest();

 

   }

 

}

 

 

四、实例结果

栽种苹果

苹果正在生长,,,

收获苹果

栽种苹果

苹果正在生长,,,

收获苹果

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值