zoukankan      html  css  js  c++  java
  • Toy Factory

    Factory is a design pattern in common usage. Please implement a ToyFactory which can generate proper toy based on the given type.

    Example
    ToyFactory tf = ToyFactory();
    Toy toy = tf.getToy('Dog');
    toy.talk(); 
    >> Wow
    
    toy = tf.getToy('Cat');
    toy.talk();
    >> Meow
    
    加了一个Enum来表示不用的ToyType; 可以不加直接上String
     1 /**
     2  * Your object will be instantiated and called as such:
     3  * ToyFactory tf = new ToyFactory();
     4  * Toy toy = tf.getToy(type);
     5  * toy.talk();
     6  */
     7 interface Toy {
     8     void talk();
     9 }
    10 
    11 
    12 class Dog implements Toy {
    13     // Write your code here
    14     @Override
    15     public void talk(){
    16         System.out.println("Wow");
    17     }
    18 }
    19 
    20 class Cat implements Toy {
    21     // Write your code here
    22     @Override
    23     public void talk(){
    24         System.out.println("Meow");
    25     }
    26 }
    27 
    28 public class ToyFactory {
    29     /**
    30      * @param type a string
    31      * @return Get object of the type
    32      */
    33     public Toy getToy(String type) {
    34         // Write your code here
    35         ToyType t = ToyType.fromString(type);
    36         switch (t){
    37             case DOG: return new Dog();
    38             case CAT: return new Cat();
    39             default: return null;
    40         }
    41     }
    42     
    43     public enum ToyType {
    44 
    45         DOG("Dog"), CAT("Cat"), UNKNOWN("UNKNOWN");
    46     
    47         private String name;
    48     
    49         private ToyType(String name) {
    50             this.name = name;
    51         }
    52     
    53         public static ToyType fromString(String name) {
    54             for (ToyType toyType : ToyType.values()) {
    55                 if (toyType.getName().equals(name)) {
    56                     return toyType;
    57                 }
    58             }
    59             return UNKNOWN;
    60         }
    61         
    62         private String getName(){
    63             return name;
    64         }
    65     }
    66 }
  • 相关阅读:
    FileZilla
    dos2unix转换从win下vimruntime下的文件
    在 MFC SDI 程序中实现多语言程序界面
    AheadLib 2.2.150
    F982,F983班数理逻辑期末考试试题
    论文公式规范。
    Servlet/JSP配置详解
    COM沉思录(八)
    XML配置文件的读取处理
    天使和魔鬼(转载)
  • 原文地址:https://www.cnblogs.com/xinqiwm2010/p/6835626.html
Copyright © 2011-2022 走看看