设计模式---工厂模式

//设计模式之工厂模式

          定义:

                定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法让类把实例化推迟到子类。

          设计原则:

                依赖抽象,不要依赖具体类

          书中实例:

        书中利用开比萨店的例子引入了工厂模式的思想,不同的比萨店(工厂)能生产出不同的比萨(产品),为了实现在引入新的产品时,并不需要修改工厂类的代码,更好的符合开放闭合

 原则,就把具体产品的实现放在了子类中来实现。这样,当有新的产品引入时,我们只需要增加新的品类和 工厂类就可以,而不需要改变工厂类的代码。

  

public interface Fruit {
    public void eat();

}



public class Orange implements Fruit{
    public void eat(){
        System.out.println("orange");
    }
}


public class Apple implements Fruit{
    public void eat(){
        System.out.println("apple");
    }
}

// 构造工厂类
// 也就是说以后如果我们在添加其他的实例的时候只需要修改工厂类就行了
class Factory{
     public static Fruit getInstance(String fruitName){
         Fruit f= null ;
         if ( "Apple" .equals(fruitName)){
             f= new Apple();
         }
         if ( "Orange" .equals(fruitName)){
             f= new Orange();
         }
         return f;
     }
}
class H ello{
     public static void main(String[] a){
         Fruit f=Factory.getInstance( "Orange" );
         f.eat();
     }
 
}
个人体会:

       在面向对象的编程中,对象的创建工作非常简单,对象的创建时机却很重要。Factory Method要解决的就是对象的创建时机问题,它提供了一种扩展的策略,很好地符合了开放封闭原则。另外,简单工厂方法的思想是:由一个对象负责所有具体类的实例化,也就是把所有类的实例化工作放在一个类里管理,这只能算是一种编程习惯,不能算上是设计模式。而真正的工厂方法的思想是:由一群子类来负责具体类的实例化,在父类中把创建对象的方法定义为抽象的,这样,在子类中就必须具体实现对象创建的方法。

 其实,在工厂方法模式中,具体的工厂类和具体的产品类之间往往具有平行的等级结构,并且是一一对应的关系,也就是在每个具体的工厂类中,都实现了具体的一个产品。这样,我们在客户端使用工厂方法时,关心的只是具体工厂一个对象,通过实例化具体的工厂对象,便可以得到具体的产品对象,从而使用产品里的方法。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值