zoukankan      html  css  js  c++  java
  • 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;
        }
    }


  • 相关阅读:
    深入admin之chang_list
    List<T>列表通用过滤模块设计
    Mysql行转换为列
    Linux中cp直接覆盖不提示的方法
    hibernate Restrictions 用法
    java.lang.OutOfMemoryError: PermGen space
    ruby+gem常用命令
    Linux查看CPU和内存使用情况
    在Ubuntu 9.04下配置Apache和ModPython
    有关查询和执行计划的DMV 从而明确那些SQL要优化
  • 原文地址:https://www.cnblogs.com/theskulls/p/5650691.html
Copyright © 2011-2022 走看看