java简单工厂模式

在学习模式过程中,感觉只看书,自己不写完全记不住,此微博只是为了自己学习时理解的东西写下来,一方面学习画UML图。

本人也只是边学习边写的,有问题的地方,望大神指正。

首先进入一个简单工厂模式。

理解:以一个园子为背景,园子中有花、草、树等,还有园丁,客户只需要告知园丁种植何种植物,园丁则会种值出相应的植物。

UML图:




对应代码:

public interface IPlant {

}
public class Flower implements IPlant {
    public Flower(){
        System.out.println("生产出一朵花....");
    }
}

public class Grass implements IPlant {
    public Grass(){
        System.out.println("生产出一株草....");
    }
}

public class Tree implements IPlant {
    public Tree(){
        System.out.println("生产出一棵树...");
    }
}

public class PlantFactory {

    public static IPlant createPlant(int type) {
        IPlant plant = null;
        switch (type){
            case 1 :
                plant = new Flower();
                break;
            case 2:
                plant = new Grass();
                break;
            case 3:
                plant = new Tree();
                break;
            default:
                throw new CreatePlantTypeUndefinedException("类型未定义");
        }
        return plant;

    }
}

public class CreatePlantTypeUndefinedException extends RuntimeException{

    public CreatePlantTypeUndefinedException(String message){
        super(message);
    }
}

public class Client {
    public static void main(String[] args) {

        IPlant flower = PlantFactory.createPlant(1);

        IPlant grass = PlantFactory.createPlant(2);

        IPlant tree = PlantFactory.createPlant(3);

    }
}


简单工厂模式差不多就完成了,一下节应该是抽象工厂模式。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值