JAVA設計模式之工廠模式之工廠方法模式

import factoryPattern.factoryMethod.service.Shape;

/*
 * 創建接口,同種產品的不同系列分別實現該工廠接口(比如三角形、矩形、橢圓均同 爲形狀產品)。
 * 消費產品系列時只需調用該系列的工廠方法生產產品就可以了,這樣避免了簡單工廠方法的缺點:
 * 一旦該工廠方法出現故障,其他產品受到影響 
 */
public interface ShapeFactory {

	public  Shape getShape();
}
public class CircleFactory implements ShapeFactory{

	@Override
	public Shape getShape() {
		
		return new Circle();
	}

}
public class RectangleFactory implements ShapeFactory{

	@Override
	public Shape getShape() {
		
		return new Rectangle();
	}

}
public class SquareFactory implements ShapeFactory{

	@Override
	public Shape getShape() {
		
		return new Square();
	}

}

public interface Shape {

	String draw();
}
public class Circle implements Shape{

	@Override
	public String draw() {
		return "Circle draw";
	}	
}
public class Rectangle implements Shape {

	@Override
	public String draw() {
		return "Rectangle draw";
	}
	
}
public class Square implements Shape{

	@Override
	public String draw() {
		return "Square draw";
	}
}

public class ShapeFactoryTest {

	@Test
	public void testShapeFactory(){
		ShapeFactory circleFactory=new CircleFactory();
		ShapeFactory squareFactory=new SquareFactory();
		
		Shape circle=circleFactory.getShape();
		Shape square=squareFactory.getShape();
		
		assertEquals("Circle draw",circle.draw());
		assertEquals("Square draw",square.draw());
	}
	
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章