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

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


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

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的功能,所以不需要多配置属性和方法
}
相关文章
C#编程-105:泛型继承之泛型类继承普通类
C#编程-105:泛型继承之泛型类继承普通类
121 0
C#编程-105:泛型继承之泛型类继承普通类
泛型类/泛型委托示例
using System;using System.Collections.Generic;using System.ComponentModel;using System.Text;using System.
760 0
42_自定义泛型类的应用
写一个泛型Dao来说明 package com.itcast.day2; /** * 泛型类型案例 * @author hp * * @param */ public class GenericDao { /** * 增加 * @p...
716 0
18 Java反射reflect(类加载+获取类对象+通用操作+设计模式+枚举+注解)
18 Java反射reflect(类加载+获取类对象+通用操作+设计模式+枚举+注解)
159 0
|
10月前
|
【Java 泛型方法】泛型方法的定义和使用,泛型的通配符和泛型的上下限,泛型的注意事项
【Java 泛型方法】泛型方法的定义和使用,泛型的通配符和泛型的上下限,泛型的注意事项
JAVA进阶之旅(一)——增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法
JAVA进阶之旅(一)——增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法 学完我们的java之旅,其实收获还是很多的,但是依然还有很多的知识点需要我们的突破,所以写下这个java进阶之旅的系列,这个系列不会说的那么的基础,主要是对一些高级点的功能进行剖析,所以,一起来看看吧! 一.
1229 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等