A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hg3093483 中级黑马   /  2013-4-5 21:46  /  1394 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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;
        }
}

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

3 个回复

倒序浏览
坐等高手!呵呵
回复 使用道具 举报
简单工厂模式就是由一个工厂类根据传入的参量决定创建出哪一种产品的类。
简单工厂的作用是实例化对象,但不需要使用对象的人了解该对象具体属于哪个子类。也就是说使用的人只需要传参以及得出什么结果,不需知道内部如何实现。

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

我想问OperationFactory 这个类的作用,它体现的优势在哪里,以及今后开发当中简单工厂模式的优劣性。。。。不过你回答的让我清晰了很多,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马