您的位置:首页 > 数据库

设计模式——简单工厂

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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息