標籤:
題目
原廠模式是一種常見的設計模式。實現一個形狀工廠 ShapeFactory 來建立不同的形狀類。這裡我們假設只有三角形,正方形和矩形三種形狀。
範例
ShapeFactory sf = new ShapeFactory();Shape shape = sf.getShape("Square");shape.draw();>> ---->> | |>> | |>> ----shape = sf.getShape("Triangle");shape.draw();>> />> / >> /____shape = sf.getShape("Rectangle");shape.draw();>> ---->> | |>> ----
解題
直接draw方法
/** * Your object will be instantiated and called as such: * ShapeFactory sf = new ShapeFactory(); * Shape shape = sf.getShape(shapeType); * shape.draw(); */interface Shape { void draw();}class Rectangle implements Shape { // Write your code here public void draw(){ System.out.println(" ----"); System.out.println("| |"); System.out.println(" ----"); }}class Square implements Shape { // Write your code here public void draw(){ System.out.println(" ----"); System.out.println("| |"); System.out.println("| |"); System.out.println(" ----"); } }class Triangle implements Shape { // Write your code here public void draw(){ System.out.println(" /\\"); System.out.println(" / \\"); System.out.println("/____\\"); }}public class ShapeFactory { /** * @param shapeType a string * @return Get object of type Shape */ public Shape getShape(String shapeType) { // Write your code here if(shapeType.equals("Square")){ return new Square(); } if(shapeType.equals("Rectangle")){ return new Rectangle(); } if(shapeType.equals("Triangle")){ return new Triangle(); } return null; }}
lintcode:形狀工廠