设计模式(一)简单工厂 / 静态工厂

   1、远古时代:自给自足。消费者自己生产一款宝马车,然后自己用。

 

    2、工业时代:消费者需要的产品由工厂生产(简单工厂模式)。消费者不用自己生产宝马车,由工厂来生产,提供给消费者。

1)产品类:

public abstract class BMW {		
}
public class BMW320 extends BMW{
	public BMW320() {
		System.out.println("制造-->BMW320");
	}
}
public class BMW523 extends BMW {
	public BMW523() {
		System.out.println("制造-->BMW523");
	}
}

2)工厂类:

public class Factory {

	public static BMW createBMW(int type) {
		BMW bmw = null;
		switch (type) {
		case 320:
			bmw = new BMW320();
			break;
		case 523:
			bmw = new BMW523();
			break;
		default:
			break;
		}
		return bmw;
	}
}

消费者:

public class Customer {
	public static void main(String[] args) {
		BMW bmw320 = Factory.createBMW(320);
		BMW bmw523 = Factory.createBMW(523);
		
		System.out.println(bmw320);
		System.out.println(bmw523);
	}
}

此模式的成员: 

         1) 抽象产品类:抽象类或者接口。        

         2) 具体产品类:工厂要生产的具体产品。

        3) 工厂类:用来创建具体产品。


        从开闭原则(对扩展开放;对修改关闭)来分析简单工厂模式。当消费者想要一种新型车,需要扩展产品类,修改工厂类。对于产品类,是符合开闭原则的;对于工厂类,是违背开闭原则的。

        工厂方法可以解决这个问题,定义一个抽象工厂,每新增一个具体产品,就增加一个对应的具体工厂,这样工厂类也可以扩展了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值