工厂方法-FactoryMethod

工厂方法:
将各种产品使用不同的工厂来生产,各种工厂中的创建方法可以互相独立地改变,并将这些工厂类抽象出一个共同的父类。

 

 

code:
抽象类(或接口):
public abrtract class Auto{
    abstract public void run();
}

 

 

实现类Car:
public class Car extends Auto{
    public Car(){}
    public void run(){
        System.out.println("启动car");
    }
}

 

 

实现类Truck:
public class Truck extends Auto{
    public Truck(){}
    public void run(){
         System.out.println("启动truck");
    }
}

 

工厂类的公共抽象类(或接口):
public abstract class Factory{
    abstract public Auto createAuto();   
}


具体工厂类carFactory:
public class CarFactory extends Factory{
    pubic Auto createAuto(){
       return new Car();      
    } 

 

具体工厂类truckFactory:
public class CarFactory extends Factory{
    pubic Auto createAuto(){
       return new Truck();      
    } 

 

 

 

客户端调用:
public class Client{
    Factory factory;
    Auto auto;
    public static void main(){
        factory=new CarFactory();
        auto=factory.createAuto();
        auto.run();

        factory=new TruckFactory();
        auto=factory.createAuto();
        auto.run();
    }
}


工厂方法能实现而简单工厂不能实现的情景:
对每一种生产出的产品实例做不同的操作;
增加一种完全不同的产品;
在不修改原有工厂类的情况下增加对新产品的支持;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值