`

Head First 设计模式之工厂模式与依赖倒置原则之总结

阅读更多

工厂模式与依赖倒置原则要点:
    1.所有的工厂都是用来封装对象的创建
    2.简单工厂,虽然不是真正的设计模式,但仍不失为一个简单的方法,可以将客户程序从具体类解耦
    3.工厂方法使用继承:把对象的创建委托给子类,子类实现工厂方法来创建对象
    4.抽象工厂使用对象组合:对象的创建被实现在工厂接口所暴露出来的方法中。
    5.所有工厂模式都通过减少应用程序和具体类之间的依赖促进松耦合
    6.工厂方法允许类将实例化延迟到子类进行
    7.抽象工厂常见相关的对象家族,而不需要依赖它们的具体类
    8.依赖倒置原则,知道我们避免依赖具体类型,而要尽量依赖抽象
    9.工厂是很有威力的技巧,帮助我们针对抽象编程,而不要针对具体类编程。

 

简单工厂:简单工厂模式其实不是一个设计模式,反而比较像是一种编程习惯。

//建立一个简单的比萨工厂
public class SimplePizzaFactory{
          public Pizza createPizza(String type){
                    Pizza pizza = null;
                    if(type.equals("cheese")){
                            pizza = new CheesePizza();
                    }else if(type.equals("pepperoni")){
                            pizza = new PepperoniPizza();
                    }else if(type.equals("clam")){
                            pizza = new ClamPizza();
                    }else if(type.equals("veggie")){
                            pizza = new VeggiePizza();
                    }
          }
          return pizza;
}

 

public class PizzaStore(){
         SimplePizzaFactory factory;
         public PizzaStore(SimplePizzaFactory factory){
                   this.factory = factory;
         }

         public Pizza orderPizza(String type){
                  Pizza pizza;
                  pizza = factory.createPizza(type);
                  pizza.prepare();
                  pizza.bake();
                  pizza.cut();
                  pizza.box();
                  return pizza;
         }
}

 

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

 

public abstract class PizzaStore{
          public Pizza orderPizza(String type){
                   Pizza pizza;
                   pizza=createPizza(type);
                   pizza.prepare();
                   pizza.bake();
                   pizza.cut();
                   pizza.box();
          }
 
         proteted abstract Pizza createPizza(String type);
}

 

public class NYPizzaStore extends PizzaStore{
          Pizza createPizza(String item){
                   if(item.equals("cheese")){
                         return new NYStyleCheesePizza();
                   }else if(item.equals("veggie")){
                         return new NYStyleVeggiePizza();
                  }else ruturn null;
          }
}

 

依赖倒置原则:要依赖抽象,不要依赖具体类。

分享到:
评论

相关推荐

    head first 设计模式 高清完整版 pdf

    《Head First设计模式》是一本深受开发者喜爱的经典书籍,它以独特、生动的方式讲解了设计模式这一核心的软件工程概念。设计模式是经验丰富的开发者在解决常见问题时总结出的最佳实践,它们为软件设计提供了可复用的...

    HeadFirst设计模式源代码

    《HeadFirst设计模式源代码》是一本面向程序员的深度学习设计模式的书籍,它通过直观易懂的方式将复杂的概念转化为生动的图像和有趣的例子,帮助读者深入理解并掌握设计模式。设计模式是软件工程中的一种最佳实践,...

    head first 设计模式 PDF电子书下载

    总的来说,《Head First 设计模式》是一本值得反复研读的经典之作,它以直观易懂的方式引导读者探索设计模式的世界,无论你是初入编程殿堂的新手,还是经验丰富的开发者,都能从中受益匪浅。下载这本书的PDF版本,你...

    headfirst设计模式

    《Head First设计模式》是一本深受开发者欢迎的设计模式教程,以其独特的视觉呈现方式和易于理解的语言,让初学者也能快速掌握设计模式的核心概念。这本书深入浅出地介绍了23种GOF(GoF,Gamma、Erich、Johnson、...

    Head First设计模式 源代码

    《Head First设计模式》是软件开发领域的一本经典著作,主要介绍了面向对象设计中的各种模式。这本书通过生动、直观的方式,使读者能够更好地理解和应用设计模式。源代码是书中理论知识的具体实现,可以帮助读者深入...

    Head First设计模式官方原码

    《Head First设计模式》是一本深受开发者欢迎的设计模式学习书籍,以其独特的教学方式,通过丰富的图解和幽默的语言,帮助读者深入理解设计模式的核心概念。这本书的官方源码提供了书中所讲解的每个设计模式的实际...

    Head First 设计模式(中文版.pdf

    《Head First 设计模式》还强调了设计模式并不是孤立存在的,而是与面向对象设计的其他概念紧密关联,如类和对象、继承、多态、封装等。书中的每一章都鼓励读者积极参与思考,通过各种互动练习和挑战来巩固知识。 ...

    Head First设计模式

    《Head First设计模式》是一本深受读者喜爱的设计模式学习书籍,尤其对于初学者而言,它以其独特的、易于理解的方式深入浅出地讲解了设计模式这一复杂的主题。设计模式是软件工程中的一种经验总结,是解决常见问题的...

    HeadFirst设计模式

    ### HeadFirst设计模式知识点解析 #### 一、设计模式概览 **标题**: "HeadFirst设计模式" **描述**: "高清中文版HeadFirst设计模式!需要的同学赶紧下载哦!" **解析**: 本资料主要介绍《HeadFirst设计模式》这...

    head设计模式+设计模式解析(第二版).rar

    《Head First 设计模式》与《设计模式解析(第二版)》是两本关于软件设计模式的重要书籍,它们深入浅出地介绍了设计模式这一核心编程概念。设计模式是经验丰富的软件开发人员在解决常见问题时所形成的通用解决方案...

    HEAD FIRST 设计模式

    2. **面向对象设计原则**:书中会讲解SOLID(单一职责、开闭原则、里氏替换、接口隔离、依赖倒置)等面向对象设计原则,这些原则是理解设计模式的基础。 3. **创建型模式**:包括工厂模式、抽象工厂模式、单例模式...

    Head First 设计模式(中文版)

    《Head First设计模式》是一本深受开发者欢迎的设计模式教程,其中文版为中国的程序员们提供了深入理解设计模式的便利。这本书共分为14章,详细阐述了23个经典的设计模式,这些都是由“四人组”(Erich Gamma、...

    Head First 设计模式

    《Head First 设计模式》是一本关于软件设计模式的入门书籍,其内容涵盖了设计模式的理论知识和实践应用。这本书以深入浅出的方式向读者展示了如何在软件设计过程中应用各种设计模式,以及它们能够带来的好处。设计...

    Head First 设计模式[高清中文版]

    本书首先介绍了设计模式的基本理念,强调了面向对象设计的原则,如开闭原则、里氏替换原则、依赖倒置原则等。这些原则是理解设计模式的基础,它们指导我们如何编写出易于修改和复用的代码。 在具体的设计模式部分,...

    Head First 设计模式(中文版)

    本书首先介绍了设计模式的基本理念,包括面向对象设计的原则,如开闭原则(Open-Closed Principle)、里氏替换原则(Liskov Substitution Principle)、依赖倒置原则(Dependency Inversion Principle)等。这些原则...

    head of first 设计模式第一章 高清版

    《Head First 设计模式》是Java开发者学习设计模式的经典之作,以其独特的视觉风格和易于理解的方式,深入浅出地介绍了23种经典的设计模式。在本章中,我们将聚焦于设计模式的基础概念以及第一章的内容,这包括对...

    设计模式书籍之headfirst

    总而言之,《Head First 设计模式》是Java开发者深入理解设计模式的理想入门书,它将理论与实践紧密结合,以趣味性和互动性的方式引导读者掌握设计模式,提升软件设计能力。通过阅读这本书,你不仅可以了解23种设计...

Global site tag (gtag.js) - Google Analytics