1. 程式人生 > >工廠方法模式(常用)

工廠方法模式(常用)

2、 工廠方法模式(常用)

弊端:耦合分散到各個工廠中,類的數量過多,程式不易讀
優勢:遵循開閉原則
Automatic:

package com.neuedu.demo3.fac2;

public abstract class Automatic {

	public abstract void display();
}

AutomaticFactory:

package com.neuedu.demo3.fac2;

public abstract class AutomaticFactory {

	public abstract Automatic product();

}

Benz:

package com.neuedu.demo3.fac2;

public class Benz extends Automatic {

	@Override
	public void display() {
		System.out.println("賓士");

	}

}

BenzFactory :

package com.neuedu.demo3.fac2;

public class BenzFactory extends AutomaticFactory{

	public Automatic product() {
	
		return new Benz();
	}

}

BMW :

package com.neuedu.demo3.fac2;

public class BMW extends Automatic {

	@Override
	public void display() {
		System.out.println("BWM");

	}

}

BMWFactory :

package com.neuedu.demo3.fac2;

public class BMWFactory extends AutomaticFactory{

	@Override
	public Automatic product() {
		// TODO 自動生成的方法存根
		return new BMW();
	}

}

Test :

package com.neuedu.demo3.fac2;

public class Test {

	public static void main(String[] args) {
		AutomaticFactory f1 = new BenzFactory();
		AutomaticFactory f2 = new BMWFactory();
		
		Automatic a = f1.product();
		Automatic b = f2.product();
		
		a.display();
		b.display();

	}

}

如果需要增加新的內容,直接建立新的類與方法類即可,對原有產品線不產生影響