泛型-使用泛型结合工厂方法实现单例模式,以支持类型自定义

简介: 泛型-使用泛型结合工厂方法实现单例模式,以支持类型自定义


泛型-使用泛型结合工厂方法实现单例模式,以支持类型自定义

package my;
public class Factory<T>
{
   static final Factory<Unicycle> t1=new Factory<Unicycle>();
   static final Factory<Tricycle> t2=new Factory<Tricycle>();
   static final Factory<Bicycle> t3=new Factory<Bicycle>();
  private Cycle createCyc(){
    if(this.equals(t1)){
      System.out.println("创建了一个Unicycle");
      return new Unicycle();
    }
    if(this.equals(t2)){
      System.out.println("创建了一个Tricycle");
      return new Tricycle();
    }
    if(this.equals(t3)){
      System.out.println("创建了一个Bicycle");
      return new Bicycle();
    }
    return null;
  }
  public static  Factory<?> create(String FacName){
    if(FacName.equals("Unicycle"))return t1;
    if(FacName.equals("Tricycle"))return t2;
    if(FacName.equals("Bicycle"))return t3;
    return null;
  }
  private Factory(){  
  }
  public Factory(String FacName){
  }
  public static void main(String[] args){
    Factory<?> UniFac1=Factory.create("Unicycle");
    UniFac1.createCyc();
    Factory<?> TriFac1=Factory.create("Tricycle");
    TriFac1.createCyc();
    Factory<?> UniFac2=Factory.create("Unicycle");
    UniFac2.createCyc();
  }
}
class Unicycle implements Cycle{
   Unicycle(){}
}
class Tricycle implements Cycle{
   Tricycle(){}
}
class Bicycle implements Cycle{
   Bicycle(){}
}
package my;
public interface Cycle
{
  //由于题目并没有涉及Cycle的功能,所以不需要多配置属性和方法
}
相关文章
|
Java 编译器
Java反射操作泛型
Java反射操作泛型
51 0
|
6月前
|
存储 Java fastjson
Java泛型-4(类型擦除后如何获取泛型参数)
Java泛型-4(类型擦除后如何获取泛型参数)
72 1
|
11月前
|
Java
反射获取声明泛型工具类
反射获取声明泛型工具类
55 0
|
Java
获取java泛型类中的泛型类型
实现java中获取泛型类中的泛型类型的方法
265 0
|
安全 Java 容器
Java泛型(1)--集合使用泛型Generic、自定义泛型、泛型在继承上的体现、通配符的使用
Java泛型(1)--集合使用泛型Generic、自定义泛型、泛型在继承上的体现、通配符的使用
168 0
Java泛型(1)--集合使用泛型Generic、自定义泛型、泛型在继承上的体现、通配符的使用
C#编程-103:自定义泛型类
C#编程-103:自定义泛型类
C#编程-103:自定义泛型类
|
Java
Java泛型04:自定义泛型类的使用
Java泛型04:自定义泛型类的使用
164 0
|
Java
Java泛型02:自定义泛型类、泛型方法
Java泛型02:自定义泛型类、泛型方法
592 0
C#反射与特性(四 实例化类型
C#反射与特性(四 实例化类型
282 0
C#反射与特性(四 实例化类型