设计模式_简单工厂模式

5 篇文章 0 订阅
5 篇文章 0 订阅
/**
 *简单工厂模式 :
 *简单工厂模式有三部分组成:1.抽象产品类;2.具体产品类;3.工厂类
 */


/**
 * 枚举类型,作为工厂方法的参数,用来说明需要哪个产品
 */
 enum PRODUCTTYPE {  
  PRODUCTONE, PRODUCTTWO  

/**
 *工厂类,用来生产具体的产片,根据给定的产品标志
 */
class Factory{
 static Product Productfactory(PRODUCTTYPE type)
{
Product product = null; 
switch (type) {
case PRODUCTONE:
product = new SubProductOne();
break;
case PRODUCTTWO:
product = new SubProductTwo();
default:
break;
}
return product;
}
}


/**
 *产品抽象类
 */
interface Product{
// method
public void doSomeThing();
}


/**
 *产品具体类2
 */
class SubProductOne implements Product{
// concrete method
public void doSomeThing(){
System.out.println("SubProductOne");
}
}


/**
 *产品具体类2
 */
class SubProductTwo implements Product{
// concrete method
public void doSomeThing(){
System.out.println("SubProductTwo");
  }
}


/**
 * 
 * 客户端测试调用
 * 
 */
public class Pattern_01_SimpleFactory {


/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//需要产品SubProductOne
Product product_one = Factory.Productfactory(PRODUCTTYPE.PRODUCTONE);
product_one.doSomeThing();

//需要产品SubProductTwo
Product product_two = Factory.Productfactory(PRODUCTTYPE.PRODUCTTWO);
product_two.doSomeThing();


}


}


/**
 *总结:简单工厂模式是工厂模式的一种特例,简化版的工厂模式。简单工厂从某种程度上降低了项目的耦合度,是一种低耦合的效果,比方说我们客户端,也就是调用该类的地方,创建
 *类不需要知道是如何创建的,只需要调用该类的实例可以了。不用简单工厂模式,一般的做法是创建该类的实例,也就是创建类对象,然后进行类的初始化工作,如果初始化工作比较多的话,
 *会使得调用地方大量的冗余,更甚者是提高了耦合度。当然如果产品类比较多的话,使用简单工厂模式,每一次添加一个产品类别,都要修改一下创建方法,违背了设计模式中的开闭原则。
 *优点:低耦合 ,提高了软件架构的模块化。
 *缺点:不符合设计模式中的开闭原则,对添加开放,对修改关闭,不利于项目的可扩展性。
 */


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值