高爽|Coder 发表于 2013-1-6 08:22:56

简单工厂模式

<div id="cnblogs_post_body">源起

最近在看程杰著作的《大话设计模式》,全书以小菜和大鸟对话的形势,由浅入深的讲解程序的设计思想,影射出一个个设计模式。我之前虽然也使用过一些设计模式,但没有系统的学习、整理、总结,现从该书入手,拟补自己技术领域的一块空白。该书虽以C#语言为基础,但对Java程序猿来说,却不影响阅读。本专栏记录自己学习设计模式的过程及自己的认识,争取从小菜蜕变成大鸟。
定义

从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式。
需求

使用Java来编写一个计算器控制台程序,要求输入两个数和运算符号,得到结果。
实现

级别1

<div class="cnblogs_code"> 1 import java.util.Scanner; 2 3 public class Operateion{ 4 5          public static void main(String[] args) { 6                  Scanner scanner = new Scanner(System.in); 7                  try{ 8                           do{ 9                                    System.out.println("输入数字A:");10                                    double numA = scanner.nextDouble();11                                    System.out.println("输入运算符(+、-、*、/):");12                                    Stringoperate = scanner.next();13                                    System.out.println("输入数字B:");14                                    double numB = scanner.nextDouble();15                                    double result = 0;16                                    if(operate.equals("+"))17                                                result = numA + numB;18                                    else if (operate.equals("-"))19                                                result = numA - numB;20                                    else if (operate.equals("*"))21                                                result = numA * numB;22                                    else if (operate.equals("/") && numB != 0)23                                                result = numA / numB;24                                    else if (numB == 0)25                                                System.err.println("除数不能为0!");26                                    else27                                                System.err.println("运算符输入有误!");28                                    System.out.println("运算结果为:"+ result);29                                    System.out.println("是否继续操作(Y/N):");30                           }while(!scanner.next().equalsIgnoreCase("n"));31                  }catch (RuntimeException e) {32                           System.err.println("程序发生异常退出!");33                    }34          }35 }
页: [1]
查看完整版本: 简单工厂模式