`

(转)设计模式(Design Patterns)笔记之一:Abstract Factory yakuu [原作]

 
阅读更多

前言:呵呵,拿了第一页出来,还没反应过来,就被兄弟们惨骂一顿,前面实在象目录,^_^, 不过大家别急嘛,好歹给我点休息时间。

不多说,下面开始记笔记!^_^

设计模式(Design Patterns)笔记之一:Abstract Factory

定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。提供创建对象的接。

工厂模式是我们最常用的模式,是用来创建对象的,它就相当于创建对象的new。
例如我们有一个类Example,我们要创建Example的对象:

Example example=new Example();

Example example=new Example(参数);

如果创建Example时做的事情不是如赋值这样简单的事,可能是很长一段代码,如果也写入构造函数中,那明显的就违背了面向对象的原则.
我们需要将创建实例的责任与使用实例的责任分开, 使得

Example example=new Example(参数);

就是简单的责任:使用Example这个实例;而创建Example的任务就交给了Factory工厂模式.

按照传统方法,我们如果需要继承Example类,生成MyExample,就需要定义Example为Interface,然后,不断继承这个Interface,生成许多子类,造成以后代码维护是如此的困难。

如果,我们开始就采用了工厂模式,也许就没有这么多的烦恼了。

我们生成一个Factory,它专门负责生成Example的实例。
public class Factory {
public static Example getIntance() {
......
if(flag == 1)
return new MyExample();
if(flag == 2)
return new YourExample();
}
}

然后,那么在你的程序中,如果要实例化MyExample时.就使用

Example example=Factory.getIntance();//还有其它标志,不具体写了。

具体使用:
工厂模式有以下三种:
1. 简单工厂(Simple Factory)
2. 工厂方法(Factory Method);
3. 抽象工厂(Abstract Factory)。

我们先看一段代码
public abstract class Factory{
  public abstract MyExample creator();
  public abstract YourExample creator();
}

public class FirstFactory extends Factory{
  public MyExample creator(){
    ......
  }
  public YourExample creator(){
    ......
  }
}

public class SecondFactory extends Factory{
  public MyExample creator(){
    ......
  }
  public YourExample creator(){
    ......
  }
}

这里,我们需要创建多个对象,复杂性提高,于是需要采用Abstract Factory来封装共同属性和方法,而将不同的属性和方法通过子类来实现。

简而言之,工厂模式的目的就是用来实现实例分发。

工厂模式中几种类型的一些差别:
简单工厂模式是根据参数来决定产生实例;
简单工厂模式, 核心是一个实类;
工厂方法模式的核心是一个抽象工厂类;
工厂方法模式可以允许很多实的工厂类从抽象工厂类继承下来, 从而可以在实际上成为多个简单工厂模式的综合;
工厂方法一般只创建一个实例,而Abstract Factory创建多个实例。

分享到:
评论

相关推荐

    Machine Learning Design Patterns

    《Machine Learning Design Patterns》是一本关于机器学习设计模式的书籍,作者是Valliappa Lakshmanan, Sara Robinson和Michael Munn。该书的主要内容是解决数据准备、模型构建和MLOps中的常见挑战。 在数据准备...

    Design Patterns in Modern C++

    Design Patterns in Modern C++: Reusable Approaches for Object-Oriented Software Design English | PDF| 2018 | 312 Pages | ISBN : 1484236025Design Patterns in Modern C++: Reusable Approaches for Object...

    《设计模式》中文版 Design Patterns

    设计模式 中文版 Design Patterns 可复用面向对象软件基础 经典之作 内含23个设计模式

    设计模式(Design Patterns)中译本.rar

    设计模式是软件工程领域中的重要概念,源自于1994年由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位杰出的软件工程师合著的经典书籍《设计模式:可复用面向对象软件的基础》(Design Patterns: ...

    设计模式:可复用面向对象软件的基础(中文)Design Patterns:Elements of Reusable Object-Oriented software

    设计模式:可复用面向对象软件的基础(中文)Design Patterns:Elements of Reusable Object-Oriented software

    GOF-设计模式-Design Patterns-英文原版-高清-有目录-有页码

    **设计模式**(Design Patterns)是软件工程中的一个重要概念,它是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。本章节将从多个角度对设计模式进行深入探讨。 #### 二、设计模式的基本定义 ...

    《Java Design Patterns》高清完整英文PDF版

    Learn how to implement design patterns in Java: each pattern in Java Design Patterns is a complete implementation and the output is generated using Eclipse, making the code accessible to all....

    Design Patterns Explained A New Perspective on Object Oriented Design

    《Design Patterns Explained: A New Perspective on Object Oriented Design》这本书提供了一种新的视角来理解和应用这些模式。以下是关于设计模式的一些关键知识点: 1. **工厂模式**:工厂模式是一种创建型设计...

    Head First Design Patterns(深入浅出设计模式)中文版PDF完整超清带目录

    又名: Head First Design Patterns 作者: (美)弗里曼(Freeman,E.) 副标题: Head First Design Patterns 简介 ······ 你不想重新发明车轮(或者更差的是,没有充气车胎的轮子),所以你从设计模式中寻求...

    设计模式(Design Patterns).pdf

    - 抽象工厂模式(Abstract Factory):提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。 - 单例模式(Singleton):保证一个类仅有一个实例,并提供一个全局访问点。 - 建造者模式...

    Design Patterns(Structural):Facade

    外观模式(Facade Pattern)是一种常用的软件设计模式,在面向对象编程中,它为子系统中的一组接口提供一个统一的高层接口,使得这一子系统更加容易使用。外观模式定义了一个高层接口,这个接口使得这一子系统更加...

    Common Design Patterns for Symbian OS: The Foundations of Smartphone Software

    Common Design Patterns for Symbian OS: The Foundations of Smartphone Software Paperback: 444 pages Publisher: Wiley (December 3, 2008) Language: English ISBN-10: 0470516356 ISBN-13: 978-0470516355 ...

    MongoDB应用设计模式:MongoDB Applied Design Patterns

    通过阅读《MongoDB应用设计模式:MongoDB Applied Design Patterns》,开发者可以深入了解MongoDB的设计原则、最佳实践以及在实际项目中的应用,从而更好地利用这一强大的数据库系统。书中的案例和经验分享将帮助...

    Design Patterns for Embedded Systems in C

    设计模式是软件工程领域内一种被广泛认可的优化编程设计的方法论。设计模式提供了一种结构化的方式来解决软件设计中常见问题的通用模板。在嵌入式系统编程中,由于资源限制、实时性和系统稳定性的特殊要求,设计模式...

    JAVA设计模式(Design Patterns)

    2. **抽象工厂模式**(Abstract Factory):提供一个接口,用于创建相关或依赖对象的家族,而无需指定它们的具体类。 3. **单例模式**(Singleton):保证一个类仅有一个实例,并提供一个全局访问点。 4. **建造者...

    设计模式Design Patterns

    第1章 引言 1 1.1 什么是设计模式 2 1.2 Smalltalk MVC中的设计模式 3 ...第2章 实例研究:设计一个文档编 辑器 22 2.1 设计问题 23 2.2 文档结构 23 2.2.1 递归组合 24 2.2.2 图元 25 2.2.3 组合模式 27

    Vue.js Design Patterns and Best Practices

    Vue.js Design Patterns and Best Practices Vue.js Design Patterns and Best Practices

    DesignPatterns.pdf_objects_designpatterns_

    标题中的"DesignPatterns.pdf_objects_designpatterns_"暗示了这可能是一个关于面向对象设计模式的PDF文档,而描述中的"Design patterns elements of reusable objects"进一步确认了这一点。设计模式的核心理念在于...

    读书笔记:design patterns 图解设计模式.zip

    读书笔记:design patterns 图解设计模式

Global site tag (gtag.js) - Google Analytics