1. 简单工厂模式
publci class Sample{
....
}
public class A extends Sample{
....
}
public class B extends Sample{
......
}
工厂类处于决定实例化那个产品类的中心位置
public class Factory{
//静态工厂方法,无必要再去实例化这个工厂类,增加没有必要的代码
public static Sample create(int which){
if(which==1)
return new A();
if(which==2)
return new B();
}
}
使用简单工厂初始化一个类
Sample newSample=Factory.create(1);
2. 工厂方法模式
植物接口及两个实现类
public interface Plant{}
public class PlantA implements Plant{
}
public class PlantB implements Plant{
}
水果接口及两个实现类
public interface Fruit{}
public class FruitA implements Fruit{
}
public class FruitB implements Fruit{
}
抽象工厂
public interface AbstractFactory{
public Plant createPlant();
public Fruit creatFruit();
}
工厂类A
public Class FactoryA implements AbstractFactory{
public Plant createPlant(){
return new PlantA();
}
public Fruit creatFruit(){
return new FruitA();
}
}
工厂类B
public Class FactoryB implements AbstractFactory{
public Plant createPlant(){
return new PlantB();
}
public Fruit creatFruit(){
return new FruitB();
}
}
工厂方法模式与简单工厂模式再结构上的不同不是很明显。工厂方法类的核心是一个抽象工厂类,而简单工厂模式把核心放在一个具体类上。
工厂方法模式之所以有一个别名叫多态性工厂模式是因为具体工厂类都有共同的接口,或者有共同的抽象父类。
当系统扩展需要添加新的产品对象时,仅仅需要添加一个具体对象以及一个具体工厂对象,原有工厂对象不需要进行任何修改,也不需要修改客户端,很好的符合了"开放-封闭"原则。而简单工厂模式在添加新产品对象后不得不修改工厂方法,扩展性不好。
工厂方法模式退化后可以演变成简单工厂模式。
新增加一个类PlantC 和 FruitC
public class PlantC implements Plant{
}
public class FruitC implements Fruit{
}
这时只需要增加一个工厂类C
public Class FactoryC implements AbstractFactory{
public Plant createPlant(){
return new PlantC();
}
public Fruit creatFruit(){
return new FruitC();
}
}
分享到:
相关推荐
工厂模式分为三种主要类型:简单工厂模式、工厂方法模式和抽象工厂模式。 1. **简单工厂模式** 简单工厂模式是最简单的工厂模式实现,它提供一个静态方法或者类来创建对象,这个类通常被称为“工厂”。用户只需要...
在软件设计模式中,工厂模式是一组非常基础且实用的设计模式,主要分为简单工厂模式、工厂方法模式和抽象工厂模式。这些模式都是为了解决对象创建的问题,通过封装对象的创建过程,使得代码更加灵活,易于扩展和维护...
总结来说,简单工厂模式和工厂方法模式都是为了封装对象的创建过程,使代码更加灵活和易于维护。简单工厂模式适合于产品种类较少且不会频繁扩展的情况,而工厂方法模式更适合于产品种类多,需要根据不同条件创建不同...
本文将详细介绍两种常见的工厂模式——简单工厂模式和工厂方法模式,并通过具体的C#代码示例进行讲解。 #### 二、简单工厂模式 ##### 2.1 概念 简单工厂模式(Simple Factory Pattern)是一种常用的设计模式,它...
简单工厂模式和工厂方法模式是两种常见的设计模式,它们在软件工程中被广泛用于对象创建。这两种模式都属于创建型设计模式,它们的主要目的是抽象出对象的创建过程,使得代码更加灵活,易于扩展。 首先,我们来理解...
本文将深入探讨两种常见的工厂模式:简单工厂模式和工厂方法模式。 简单工厂模式,也称为静态工厂模式,是一种创建型设计模式,它提供了一个静态方法来创建对象,而无需暴露实例化逻辑。在简单工厂模式中,一个单一...
前言 在《设计模式》一书中...接下来会通过例子对比简单工厂模式和工厂方法模式。 工厂意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。 别名 虚构造器(V
本文将深入探讨三种工厂模式:简单工厂模式、工厂方法模式以及抽象工厂模式,并结合源码分析其应用场景和优缺点。 1. 简单工厂模式 简单工厂模式(Simple Factory Pattern)是一种静态工厂方法,它通过一个公共的...
简单工厂模式和工厂方法模式在实际开发中都有广泛的应用。例如,在工具类库中,可能会有一个工具类工厂,根据用户需求返回不同的工具类实例。在框架设计中,工厂模式可以用于创建各种组件,使得框架的使用者可以根据...
本篇文章将对三种主要的工厂模式:简单工厂、工厂方法和抽象工厂进行深入的对比和总结。 **简单工厂模式** 是最基础的工厂模式形式,它提供一个静态方法或类来创建对象。在这个模式中,工厂是负责创建对象的中心...
简单工厂模式和工厂方法模式之间的区别主要在于前者是直接通过一个工厂类来创建产品对象,工厂类中需要有判断逻辑来决定创建哪种产品。而工厂方法模式则是将创建逻辑分解到各个子类中,每个子类对应一种产品,这样做...
Spring框架,作为Java开发中的核心组件,广泛采用了工厂模式和其他设计模式。例如,Spring的IoC(Inversion of Control)容器就是一种高级形式的工厂,它可以管理对象的生命周期和依赖关系,进一步降低了客户端代码...
本文将深入探讨"反射"以及两种常见的工厂模式:"简单工厂模式"和"工厂方法模式",并结合提供的文件名称来解析这些概念。 首先,我们来看"反射"。在Java等面向对象语言中,反射是一种强大的工具,它允许程序在运行时...
**简单工厂模式**是软件设计模式中的一种,属于创建型模式。在Java编程中,它是一种用于创建对象的简便方法,将对象的实例化过程封装到一个单独的工厂类中,使得客户端代码无需直接调用具体类的构造函数,而是通过...
工厂模式分为三种主要类型:简单工厂模式、普通工厂模式(也称为工厂方法模式)和抽象工厂模式。 1. **简单工厂模式**: - 简单工厂模式中,有一个中心工厂类,它负责根据输入条件(通常是一个参数)来创建具体的...