其他分享
首页 > 其他分享> > 1.简单工厂模式

1.简单工厂模式

作者:互联网

package simpleFactory;

/**
 * 一般情况情况下写几个方法的使用方式
 *
 * @author LiMing E-mail:1151143484@qq.com
 * @date 2017年6月11日 上午8:46:32
 */
public class Commonly {
	public static void main(String[] args) {
		//方法1对象
		Method1 method1 = new Method1();
		method1.oprator();
		//方法2对象
		Method2 method2 = new Method2();
		method2.oprator();
		//方法3对象
		Method3 method3 = new Method3();
		method3.oprator();
	}
}

//方法1实体类
class Method1 {
	public void oprator() {
		System.out.println("method1");
	}
}
//方法2实体类
class Method2 {
	public void oprator() {
		System.out.println("method2");
	}
}
//方法3实体类
class Method3 {
	public void oprator() {
		System.out.println("method3");
	}
}

 

 

package simpleFactory;

/**
 * 简单工厂模式实现
 *
 * @author LiMing E-mail:1151143484@qq.com
 * @date 2017年6月11日 上午8:53:07
 */
public class SimpleFactory {
	public static void main(String[] args) {
		//创建方法是通过对象工厂创建  不用使用者知道应该new 那个方法 但是简单工厂模式不符合 开放封闭原则 它对于更改不是封闭的 需要修改工厂类
		Method method = Factory.createMethod("4");
		method.oprator();
		method = Factory.createMethod("5");
		method.oprator();
		method = Factory.createMethod("6");
		method.oprator();
	}
}

// 抽象方法类
abstract class Method {
	public abstract void oprator();
}

// 方法4实体类
class Method4 extends Method {
	public void oprator() {
		System.out.println("method4");
	}
}

// 方法5实体类
class Method5 extends Method {
	public void oprator() {
		System.out.println("method5");
	}
}

// 方法6实体类
class Method6 extends Method {
	public void oprator() {
		System.out.println("method6");
	}
}

// 工厂类
class Factory {
	public static Method createMethod(String type) {
		Method method = null;
		switch (type) {
		case "4":
			method = new Method4();
			break;
		case "5":
			method = new Method5();
			break;
		case "6":
			method = new Method6();
			break;
		default:
			break;
		}
		return method;
	}
}

我理解的简单工厂模式 就是杂类统一化(搞一个统一的父类Method ),创建统一化(通过Factory创建对象)

也没有很省事儿,因为逻辑中的根据1 2 3 4 创建不同的对象还在  还是需要多次if else 的

 

 

 

 

标签:Method,oprator,模式,public,class,void,简单,工厂,method
来源: https://blog.51cto.com/u_12198094/2699986