黑马程序员技术交流社区

标题: java简单工厂模式 [打印本页]

作者: hg3093483    时间: 2013-4-5 21:46
标题: java简单工厂模式
本帖最后由 hg3093483 于 2013-4-6 13:02 编辑

近日小弟习得多态,接触到了一种简单工厂模式不甚理解,希望哪位大神不吝赐教。想知道工厂模式的作用,开发当中应该注意的东西有哪些。下面是我的代码。
import java.util.*;
class Test2 {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入第一个整数");
                int a = sc.nextInt();
                System.out.println("请输入第一个整数");
                int b = sc.nextInt();
                Random ra = new Random();
                char[] ch = {'+','-','*','/','%'};
                char c = ch[ra.nextInt(5)];
                Operation op = OperationFactory.getInstance(c);
                int result = op.oper(a,b);
                System.out.println(""+a+c+b+"="+result);
        }
}

class OperationFactory {
        public static Operation getInstance(char c) {
                Operation op = null;
                switch (c) {
                case '+':op = new Add();break;
                case '-':op = new Sub();break;
                case '*':op = new Mul();break;
                case '/':op = new Div();break;
                case '%':op = new Mod();break;
                }
                return op;
        }
}

class Operation {
        int oper(int a,int b) {
                return 0;
        }
}

class Add extends Operation {
        int oper(int a,int b) {
                return a+b;
        }
}

class Sub extends Operation {
        int oper(int a,int b) {
                return a-b;
        }
}

class Mul extends Operation {
        int oper(int a,int b) {
                return a*b;
        }
}

class Div extends Operation {
        int oper(int a,int b) {
                return a/b;
        }
}

class Mod extends Operation {
        int oper(int a,int b) {
                return a%b;
        }
}


作者: 郭沐昌    时间: 2013-4-5 21:53
坐等高手!呵呵
作者: 黄杨    时间: 2013-4-5 22:30
简单工厂模式就是由一个工厂类根据传入的参量决定创建出哪一种产品的类。
简单工厂的作用是实例化对象,但不需要使用对象的人了解该对象具体属于哪个子类。也就是说使用的人只需要传参以及得出什么结果,不需知道内部如何实现。

不过俺看了好久,也不知道这位哥们你这代码是用来问什么的?
作者: hg3093483    时间: 2013-4-5 22:47
黄杨 发表于 2013-4-5 22:30
简单工厂模式就是由一个工厂类根据传入的参量决定创建出哪一种产品的类。
简单工厂的作用是实例化对象,但 ...

我想问OperationFactory 这个类的作用,它体现的优势在哪里,以及今后开发当中简单工厂模式的优劣性。。。。不过你回答的让我清晰了很多,谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2