All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.wuba.wsilk.producer.factory.Factory Maven / Gradle / Ivy

package com.wuba.wsilk.producer.factory;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 工厂模式 和方法工厂模式
 * 
 * @author mindashuang
 */
@Documented
@Retention(RetentionPolicy.SOURCE)
@Target({ ElementType.TYPE, ElementType.ANNOTATION_TYPE })
public @interface Factory {

	OptionType value() default OptionType.STRING;// option 数据类型

	Option[] options();

	// 选择器放在构造器中

	boolean constructorOptionValue() default false;

	public @interface Option {

		Class bean();

		String optionValue(); // option 数据类型

	}

	/**
	 * 工厂类型
	 */
	static enum FactoryType {

		/** 简单工厂 */
		SIMPLE,
		/** 方法工厂 */
		METHOD

	}

	/**
	 * 
	 * 选项
	 * 
	 */
	static enum OptionType {
		/** 字符串类型 */
		STRING,
		/** 整数类型 **/
		INTEGER,
		/** long */
		LONG,
		/** double */
		DOUBLE,
		/** float */
		FLOAT,
		/** bool */
		BOOLEAN,
		/** byte */
		BYTE,
		/** sort */
		SHORT,
		/** char */
		CHAR,
		/** 枚举类型 */
		ENUM

	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy