祖玛实例分析工厂方法

分析实例

这是一个祖玛的简单实例,工厂负责创建产品。有一个抽象工厂,被具体的工厂继承。抽象工厂中写了小球的抽象创建方法:

public abstract class MagicPipeFactory {
 public abstract Ball MakeBallFactoryMethod();
}

产品也有抽象的产品:小球

public abstract class Ball {
//打印信息
 public abstract void prtInfo();
}

有两种小球:皮球和钢球

public class RubberBall extends Ball{
 public RubberBall() {
  System.out.println("创建了皮球");
 }
 public void prtInfo(){
  System.out.println("我是皮球");
 }
}
public class SteelBall extends Ball{
 public SteelBall() {
  System.out.println("创建了钢球");
 }
 public void prtInfo(){
  System.out.println("我是钢球");
 }
}

两个具体的工厂创建它:

public class MagicPipeForRubberBall extends MagicPipeFactory {
 public Ball MakeBallFactoryMethod(){
//  工厂创建产品对象
  return new RubberBall();
 }
}
public class MagicPipeForSteelBall extends MagicPipeFactory { 
 public Ball MakeBallFactoryMethod(){
//  工厂创建产品对象
  return new SteelBall();
 }
}

注意:

工厂是创建小球产品对象的
小球有构造方法,创建对象的时候会调用
用父类创建子类对象,迁移方便

main函数:

public class Application {
 public static void main(String[] args) {
  
  System.out.println("工厂方法");
  
//  父类创建了子类的对象
  MagicPipeFactory factory = new MagicPipeForRubberBall();
  
//  产品 工厂调用方法创建小球,要给到小球变量
  Ball ball = factory.MakeBallFactoryMethod();
//  打印信息
  ball.prtInfo();
  
  factory = new MagicPipeForSteelBall();
  ball = factory.MakeBallFactoryMethod();
  ball.prtInfo();
  
 }
}

结果:

工厂方法
创建了皮球
我是皮球
创建了钢球
我是钢球

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值