package designpatten;
/**
* 产品接口必须稳定,否则整个产品结构都会发生修改
*/
interface IProduct{
public void use();
}
class Telephone implements IProduct{
@Override
public void use() {
System.out.println("Telephone");
}
}
class Television implements IProduct{
@Override
public void use() {
System.out.println("Television");
}
}
public class SimpleFactory {
/**
* 1.采用静态方法,实现简单,使客户端不用生成工厂实例就能方便的使用
* 2.如需添加新的产品,则需要修改if else判断,很不利于扩展
*/
public static IProduct create(String productName){
if("Telephone".equals(productName)){
return new Telephone();
}else if("Television".equals(productName)){
return new Television();
}
return new IProduct(){
@Override
public void use() {
System.out.println("non");
}
};
}
public static void main(String [] args){
IProduct telephone=SimpleFactory.create("Telephone");
telephone.use();
IProduct television=SimpleFactory.create("Television");
television.use();
IProduct watch=SimpleFactory.create("Watch");
watch.use();
}
}
/**
运行结果:
Telephone
Television
non
*/
/**
* 产品接口必须稳定,否则整个产品结构都会发生修改
*/
interface IProduct{
public void use();
}
class Telephone implements IProduct{
@Override
public void use() {
System.out.println("Telephone");
}
}
class Television implements IProduct{
@Override
public void use() {
System.out.println("Television");
}
}
public class SimpleFactory {
/**
* 1.采用静态方法,实现简单,使客户端不用生成工厂实例就能方便的使用
* 2.如需添加新的产品,则需要修改if else判断,很不利于扩展
*/
public static IProduct create(String productName){
if("Telephone".equals(productName)){
return new Telephone();
}else if("Television".equals(productName)){
return new Television();
}
return new IProduct(){
@Override
public void use() {
System.out.println("non");
}
};
}
public static void main(String [] args){
IProduct telephone=SimpleFactory.create("Telephone");
telephone.use();
IProduct television=SimpleFactory.create("Television");
television.use();
IProduct watch=SimpleFactory.create("Watch");
watch.use();
}
}
/**
运行结果:
Telephone
Television
non
*/