• lintcode:形状工厂


    题目

    工厂模式是一种常见的设计模式。实现一个形状工厂 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;
        }
    }


  • 相关阅读:
    《需求工程--软件建模与分析》读书笔记一
    软件工程概论课程总结及给老师的意见
    梦断代码阅读笔记之三
    梦断代码阅读笔记之二
    第二阶段小组冲刺第七天总结
    软件工程第十一周学习进度条
    用户场景描述
    软件工程第九、十周学习进度条
    个人工作总结
    软件工程第八周学习进度条
  • 原文地址:https://www.cnblogs.com/bbbblog/p/5650691.html
Copyright © 2020-2023  润新知