`
sooxin
  • 浏览: 257331 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

可复用面向对象编程——FACTORY METHOD(工厂方法)

阅读更多

1.诠释

定义一个用于创建对象的接口,让子类决定实例化哪一个类。

 

2.实用范围
• 当一个类不知道它所必须创建的对象的类的时候。
• 当一个类希望由它的子类来指定它所创建的对象的时候。
• 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类
是代理者这一信息局部化的时候。

 

3.好处

• 工厂方法不再将与特定应用有关的类绑定到你的代码中。
• 客户无论如何必须创建C r e a t o r的子类时,创建子类也是可行的。
• 为子类提供挂钩

•  连接平行的类层次 

 

4.实现

public interface Fruit { 

  void plant();  //水果是被种植的 

  void enableEat();  //水果能吃 

} 

public class Apple implements Fruit{ 

  public void plant(){ 

    System.out.println("种苹果!"); 

  } 

  public void enableEat(){ 

    System.out.println("苹果好吃!"); 

  } 

} 

public class Grape implements Fruit{ 

  public void plant(){ 

    System.out.println("种葡萄!"); 

  } 

  public void enableEat(){ 

    System.out.println("葡萄好吃!"); 

  } 

} 

public class Pear implements Fruit{ 

  public void plant(){ 

    System.out.println("种鸭梨!"); 

  } 

  public void enableEat(){ 

    System.out.println("鸭梨好吃!"); 

  } 

} 

public interface BuyFruit{ 

  public Fruit buyFruit();   //定义买水果这一过程 

} 

public class BuyApple implements BuyFruit{ 

  public Fruit buyFruit(){ 

    return new Apple();  //返回苹果实例 

} 

} 

public class BuyPear implements BuyFruit{ 

  public Fruit BuyPear (){ 

    return new Pear();  //返回鸭梨实例 

} 

} 

public class BuyGrape implements BuyFruit{ 

  public Fruit BuyGrape (){ 

    return new Grape ();  //返回葡萄实例 

} 

} 

public class FruitTest { 

  public static void  main(String args[]){ 

    BuyApple buy = new BuyApple(); //开始买水果这个过程 

    buy.buyFruit().enableEat();      //调用苹果的enableEat()方法 

  } 

} 

 

 

分享到:
评论

相关推荐

    设计模式可复用面向对象软件的基础

    标题"设计模式可复用面向对象软件的基础"直接揭示了本文要探讨的核心——设计模式在构建可复用面向对象软件中的关键作用。设计模式不是具体的代码或库,而是一种通用解决方案的模板,它描述了在特定上下文中,当遇到...

    设计模式——可复用面向对象软件的基础(3)

    《设计模式——可复用面向对象软件的基础》是IT领域中的经典著作,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位大师合著,他们因此被誉为GoF(Gang of Four)。这本书提出了面向对象设计的23种...

    设计模式——可复用面向对象软件的基础(1)

    在《设计模式——可复用面向对象软件的基础》这本书中,作者Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides(合称GoF)首次提出了23种面向对象设计模式。这些模式涵盖了不同设计场景,如创建型模式、...

    设计模式-可复用面向对象软件的基础

    《设计模式——可复用面向对象软件的基础》是软件工程领域的一部里程碑式的作品,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位大师共同编写,被誉为“Gang of Four”(GoF)的经典著作。...

    设计模式 - 可复用面向对象软件的基础(高清版).rar

    《设计模式 - 可复用面向对象软件的基础》是一本经典的著作,它深入探讨了面向对象编程领域中的设计模式,旨在提高代码的可读性、可维护性和可重用性。这本书的高清版为读者提供了更清晰的阅读体验,使得学习和理解...

    23种 设计模式---面向对象的基本原则

    在面向对象编程中,设计模式基于一些基本原则,这些原则构成了良好设计的基础。本篇将深入探讨23种设计模式以及面向对象的基本原则。 面向对象的基本原则主要包括: 1. 单一职责原则(Single Responsibility ...

    深入浅出面向对象分析与设计(中文版)

    面向对象分析与设计是软件开发领域中的核心概念,它是一种以对象为中心的编程思想,用于构建复杂、可维护和可扩展的系统。本资源“深入浅出面向对象分析与设计(中文版)”提供了全面的理论知识和实践指导,旨在帮助...

    面向对象对象设计模式

    它们是经验丰富的开发者们在实践中总结出的最佳实践,被广泛应用于面向对象编程语言中,如Java、C++和Python等。 首先,我们要了解面向对象设计的三个核心概念:封装、继承和多态。封装使得数据和操作数据的方法...

    敏捷软件开发原则、模式与实践 C#版

    Martin深入而生动地 使用真实案例讲解了面向对象设计的基本原则、重要的设计模式、UML和敏 捷方法。 本书Java版曾荣获2003年第13届Jolt大奖,是公认的经典著作。本书是 C#程序员提升功力的绝佳教程,也可用作高校...

    java设计模式之面向对象的思想(think in OO(Object Oriented))

    面向对象编程(Object-Oriented Programming,简称OOP)是现代软件开发中广泛采用的一种编程范式,它基于“万物皆对象”的理念,通过封装、继承和多态等核心概念来构建可复用、可扩展的软件系统。在Java中,设计模式...

    十大经典java书籍之Addison Wesley - Gamma, Helm, Johnson, Vlissides - Design Patterns, Elements Of Reusable Object Oriented Software, 1998

    ### 十大经典Java书籍之《设计模式:可复用面向对象软件的基础》 #### 关于本书 《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)是一本由Erich Gamma...

    深入浅出设计模式

    其中,“工厂模式”作为最具代表性的一种,广泛应用于面向对象编程语言如Java中。本文将深入剖析工厂模式的三种变体——静态工厂模式、工厂方法模式和抽象工厂模式,以期帮助读者理解其背后的原理及应用场景。 ####...

    算法导论 DesignPatterns Gof

    - **创建型模式**:专注于对象的创建方式,常见的有抽象工厂(Abstract Factory)、建造者(Builder)、工厂方法(Factory Method)、原型(Prototype)和单例(Singleton)。 - **结构型模式**:关注类或对象的组合方式,包括...

    非常好的设计模式资料

    "面向对象设计模式与原则"这一主题,包含了设计模式的核心理念——面向对象编程的原则。这些原则包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)和依赖倒置原则(DIP)。这些...

    Design Patterns Elements Of Reusable Object-Oriented Software

    此书标题明确了本书的主要内容:设计模式及其在面向对象编程中的应用。设计模式是一种在特定上下文中解决常见问题的解决方案模板。面向对象编程(OOP)是一种广泛使用的编程范式,它强调使用类和对象来表示现实世界...

    设计模式-Java语言中的应用(pdf)

    创建型模式如单例(Singleton)、工厂方法(Factory Method)和抽象工厂(Abstract Factory),主要关注对象的创建过程,使得代码更具灵活性和可扩展性。结构型模式如适配器(Adapter)、装饰器(Decorator)、代理...

    设计模式大全C++

    设计模式C++.pdf可能包含了23个经典的设计模式,这些模式最初在《设计模式:可复用面向对象软件的基础》一书中被详细阐述。这23个模式可以分为三类:创建型、结构型和行为型。 1. **创建型模式**:这类模式主要涉及...

Global site tag (gtag.js) - Google Analytics