您的位置:首页 > 其它

第二篇 设计模式--工厂方法模式

2015-01-30 11:20 134 查看
定义:工厂模式是我们软件设计最常用的实例化对象模式,是用工厂方法代替new操作的一种模式。

好处:在创建一类对象时,使用工厂模式,给系统带来更大的可扩展性和更少的修改量

代码:

package factorymodel.factorymethord;

/**
*
*
* @author naivor 工厂方法模式_场景类
*/
public class FactoryMethord {
public static void main(String[] args) {
Product1Factory factory = new Product1Factory();  //通过改变产品工厂类型,生产不同的产品
Product product = factory.createProduct();
product.doSomething();
}
}

/**
*
* @author naivor 工厂方法模式_工厂接口
*/
interface Factory {
Product createProduct();
}

/**
*
* @author naivor 工厂方法模式_产品1工厂
*/
class Product1Factory implements Factory {
public Product createProduct() {
return new Product1();
}
}

/**
*
* @author naivor 工厂方法模式_产品2工厂
*/
class Product2Factory implements Factory {
public Product createProduct() {
return new Product2();
}
}

/**
*
* @author naivor 工厂方法模式_产品3工厂
*/
class Product3Factory implements Factory {
public Product createProduct() {
return new Product3();
}
}

/**
*
* @author naivor 工厂方法模式_产品接口
*/
interface Product {
void doSomething();
}

/**
*
* @author naivor 工厂方法模式_产品1类
*/
class Product1 implements Product {
public void doSomething() {
// Product1的业务逻辑
}
}

/**
*
* @author naivor 工厂方法模式_产品2类
*/
class Product2 implements Product {
public void doSomething() {
// Product2的业务逻辑
}
}

/**
*
* @author naivor 工厂方法模式_产品3类
*/
class Product3 implements Product {
public void doSomething() {
// Product3的业务逻辑
}
}


扩展:上面的工厂和产品都使用了“接口+实现类”的方式来实现,也可以使用“抽象类+派生类”来实现。

区别:将产品判断逻辑放到场景类中,解决某个产品的生产可能依赖其他产品。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: