设计模式之工厂模式

        工厂模式就是新建对象交给工厂统一制作,不需要自己单独新建。模拟现实生活中我们买一个电脑,电脑并不是我们自己生产,我们只需要知道自己买什么品牌的电脑,其他交给工厂制作。适合标准化的对象大量创建,使用者可以不知道对象的细节,只需要知道对象的名称即可得到对象,使得对象使用更加简单方便。还可以解耦,如果使用者觉得这个对象不好用,则只需要更改工厂类即可,其他不需要修改。

代码演示

电脑父类

package com.wmx.factory;


public class Computer {
    private String name;
    private double price;

    @Override
    public String toString() {
        return "Computer{" +
                "name='" + name + '\'' +
                ", price=" + price +
                '}';
    }

    public Computer() {
    }

    public Computer(String name, double price) {
        this.name = name;
        this.price = price;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }
}

华为电脑子类

package com.wmx.factory;

public class Huawei extends Computer {
    private String logo;


    public Huawei() {
    }

    @Override
    public String toString() {
        return "Huawei{" +
                "logo='" + logo + '\'' + super.getName() + "\'" + super.getPrice() +
                '}';
    }

    public Huawei(String logo) {
        this.logo = logo;
    }

    public Huawei(String name, double price, String logo) {
        super(name, price);
        this.logo = logo;
    }

    public String getLogo() {
        return logo;
    }

    public void setLogo(String logo) {
        this.logo = logo;
    }
}

苹果电脑子类

package com.wmx.factory;

public class Mac extends Computer {
    private String material;

    public Mac() {
    }

    @Override
    public String toString() {
        return "Mac{" +
                "material='" + material + '\'' + super.getName() + "\'" + super.getPrice() +
                '}';
    }

    public Mac(String material) {
        this.material = material;
    }

    public Mac(String name, double price, String material) {
        super(name, price);
        this.material = material;
    }

    public String getMaterial() {
        return material;
    }

    public void setMaterial(String material) {
        this.material = material;
    }
}

工厂类

package com.wmx.factory;

public class ComputerFactory {


    public static Computer produceComputer(String computerName) {
        switch (computerName) {
            case "huawei":
                return new Huawei("华为P40", 5100, "菊花");
            case "mac":
                return new Mac("苹果13", 8100, "铝合金");
            default:
                return null;
        }
    }

}

测试类

package com.wmx.factory;

public class Yewu {

    public static void main(String[] args) {
        Computer mac = ComputerFactory.produceComputer("mac");
        System.out.println(mac);
    }
}

至此,我们的工厂模式介绍完毕,有疑问的可以下方留言,相互学习,我是心哥说编程,致力于成为一个编程大牛编程爱好者。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值