设计模式——简单工厂
2012-05-31 21:18
183 查看
例子一:
例子二:
package simpleFactory; public abstract class Operation { protected double NumberA; protected double NumberB; public double getNumberA() { return NumberA; } public double getNumberB() { return NumberB; } public void setNumberA(double n) { NumberA = n; } public void setNumberB(double n) { NumberB = n; } public abstract double getResult(); }
package simpleFactory; public class Add extends Operation{ @Override public double getResult() { return NumberA + NumberB; } }
package simpleFactory; public class Minus extends Operation{ @Override public double getResult() { return NumberA - NumberB; } }
package simpleFactory; public class SimpleFactory { public static Operation createOperation(char o) { switch(o) { case '+': return new Add(); case '-': return new Minus(); default: return null; } } }
package simpleFactory; public class Client { public static void main(String[] args) { Operation add = SimpleFactory.createOperation('+'); add.setNumberA(1); add.setNumberB(1); System.out.println(add.getResult()); Operation minus = SimpleFactory.createOperation('-'); minus.setNumberA(2); minus.setNumberB(3); System.out.println(minus.getResult()); } }
例子二:
package simpleFactory2; public interface IUser { public void insert(String s); public String get(int id); }
package simpleFactory2; public class AccessUser implements IUser{ @Override public String get(int id) { System.out.println("AccessUser select from xx where ID = " + id); return null; } @Override public void insert(String s) { System.out.println("insert into xx value " + s); } }
package simpleFactory2; public class SqlserverUser implements IUser{ @Override public String get(int id) { System.out.println("Sqlserver select from xx where ID = " + id); return null; } @Override public void insert(String s) { System.out.println("Sqlserver insert into xx value " + s); } }
package simpleFactory2; public interface IFactory { public IUser createUser(); }
package simpleFactory2; public class AccessFactory implements IFactory{ @Override public IUser createUser() { return new AccessUser(); } }
package simpleFactory2; public class SqlserverFactory implements IFactory{ @Override public IUser createUser() { return new SqlserverUser(); } }
package simpleFactory2; public class Client { public static void main(String[] args) { // IFactory factory = new SqlserverFactory(); IFactory factory = new AccessFactory(); IUser user = factory.createUser(); user.insert("test"); user.get(1); } }
相关文章推荐
- 设计模式(一)—简单工厂(创建型)
- 设计模式之简单工厂
- 设计模式之简单工厂
- Dot Net 设计模式—简单工厂
- PHP设计模式之适配器模式代码实例
- 3、C语言和设计模式(之单件模式)
- Java单例设计模式
- 设计模式之装饰者模式
- 设计模式-简单工厂模式
- php设计模式之单例模式
- 设计模式6大设计原则
- 寻找设计模式-工厂模式
- Java基础知识-多线程-设计模式-GUI
- JavaScript进阶设计模式系列——基础篇——闭包(5)--命令模式的两种实现方式
- 设计模式之策略模式(Strategy)
- Ruby中的设计模式
- 可扩展性设计模式(zz)
- 装饰者设计模式----IO流
- [设计模式]_[中级]_[模板方法C++例子实现举例]
- Java设计模式笔记(5)建造者模式