Java设计模式 - 工厂方法模式

工厂方法模式

定义一个创建对象的接口,由主类决定具体实例化哪个类。

UML图示

工厂方法实例

钢笔工厂生产红色(RedCore),以及蓝色(BlueCore)两种笔芯,并用这些生产好的笔芯去生产红色钢笔(RedPen)和蓝色钢笔(BluePen)。

使用工厂模式,就需要将RedCore.java/ BlueCore.java,抽象出一个接口Core.java,并让这两个类实现这个接口,同时将RedPen.java/ BluePen.java也抽象出接口Pen.java。并在Pen.java中声明返回Core接口的实例对象。

 

UML图示

- Core.java

public interface Core {

    public void makeCore();
}

- BlueCore.java

public class BlueCore implements Core {
    @Override
    public void makeCore() {
        System.out.println("making Blue Core");
    }
}

- RedCore.java

public class RedCore implements Core {
    @Override
    public void makeCore() {
        System.out.println("made Red Core");
    }
}

- Pen.java

public interface Pen {
    public Core getCore();
    public void makePen();
}

- BluePen.java

public class BluePen implements Pen {
    @Override
    public Core getCore() {
        return new BlueCore();
    }

    @Override
    public void makePen() {
        Core core = this.getCore();
        System.out.println("made a blue pen!");
    }
}

- RedPen.java

public class RedPen implements Pen {
    @Override
    public Core getCore() {
        return new RedCore();
    }

    @Override
    public void makePen() {
        Core core = this.getCore();
        System.out.println("made a red pen!");
    }
}

- Application.java

public class Application {

    public static void main(String[] args){
        System.out.println("Start to make a Blue Pen!");
        BluePen bluePen = new BluePen();
        bluePen.makePen();
        System.out.println("Start to make a Red Pen!");
        RedPen redPen = new RedPen();
        redPen.makePen();
    }
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值