1.简单工厂模式
16lz
2021-04-11
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 的
©著作权归作者所有:来自51CTO博客作者木子的昼夜的原创作品,如需转载,请注明出处,否则将追究法律责任
更多相关文章
- 2.策略模式
- 5.依赖倒转原则
- 10.模板方法模式
- 8.工厂方法
- 7.代理模式
- 19.组合模式
- JS中的值传递,模板字面量,数组、对象、传参解构,访问器属性
- 【收藏】最全JavaScript中所有的内置对象属性和方法汇总整理
- 微信小程序或公众号以及特殊表情,昵称等存入MySQL报错问题