设计模式之工厂模式(代码片段)

wawjandcsws wawjandcsws     2022-12-17     659

关键词:

工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

简单工厂模式与工厂模式区别:

  (1)简单工厂模式的优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类。

  (2)简单工厂模式违背开放-封闭原则

  (3)工厂模式实现时客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂模式的简单工厂模式的内部逻辑判断移到了客户端代码来进行。

案例:

<?php
interface Drink
    function getDrinkName();


class AppleDrink implements Drink
    function getDrinkName()
    
        echo ‘苹果味饮料‘;
    


class BananaDrink implements Drink
    function getDrinkName()
    
        echo ‘香蕉味饮料‘;
    



interface FruitFactory
    function makeDrink();


class AppleFactory implements FruitFactory
    function makeDrink()
    
        return new AppleDrink();
    


class BananaFactory implements FruitFactory
    function makeDrink()
    
        return new BananaDrink();
    


$appleFactory = new AppleFactory();
$apple = $appleFactory->makeDrink();
$apple->getDrinkName();

$bananaFactory = new BananaFactory();
$banana = $bananaFactory->makeDrink();
$banana->getDrinkName();

 

设计模式之简单工厂模式(代码片段)

简单来说,工厂模式就是按照需求来返回一个类型的对象,使用工厂模式的意义就是,如果对象的实例化与代码依赖太大的话,不方便进行扩展和维护,使用工厂的目的就是使对象的实例化与主程序代码就行解耦.1.简单工厂模式简介简... 查看详情

设计模式之工厂模式(代码片段)

工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。简单工厂模式与工厂模式区别:  (1)简单工厂模式的优点在于工厂类中包含了必要的逻辑判断,根据客户... 查看详情

设计模式之工厂方法模式(代码片段)

设计模式之工厂方法模式(一)什么是工厂方法模式  工厂方法模式也称为多态工厂模式,也是对象的创建模式。定义了一个创建产品对象的工厂接口或抽象类,将实际创建工作推迟到它的实现类或子类当中。核心工厂类不再... 查看详情

设计模式之抽象工厂模式(代码片段)

抽象工厂模式基本介绍1)抽象工厂模式:定义了一个interface用于创建相关或有依赖关系的对象簇,而无需指明具体的类2)抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合。3)从设计层面看,抽象工厂模式就是对简单工厂... 查看详情

设计模式之工厂模式(代码片段)

工厂模式一、简单工厂模式1.简要概述2.模式结构3.实现代码4.优点好处5.缺点弊端6.应用场景7.应用示例二、工厂方法模式1.简要概述2.模式结构3.实现代码4.优点好处5.缺点弊端6.应用场景7.应用示例一、简单工厂模式1.简要概述简单... 查看详情

设计模式之简单工厂模式(代码片段)

简单画图理解//设计模式之简单工厂模式//创建一个食物类interfaceFoodvoideat();//我今天想吃薯条或汉堡classHamburgerimplementsFood@Overridepublicvoideat()System.out.println("我吃汉堡");classFrenchFriesimplementsFood@Overridepublicvoidea 查看详情

设计模式之工厂方法模式(代码片段)

设计模式之工厂方法模式  工厂方法模式定义:Defineaninterfaceforcreatinganobject,butletsubclassesdecidewhichclasstoinstantiate.FactoryMethodletsaclassdeferinstantiationtosubclasses.(定义一个用于创建对象的接口,让子类决定实例化哪一个类 查看详情

设计模式之工厂方法模式(代码片段)

1.什么是工厂方法模式工厂方法模式同样属于类的创建型模式又被称为多态工厂模式。工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成... 查看详情

设计模式之抽象工厂模式(代码片段)

1.什么是抽象工厂模式抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象。 2.具体... 查看详情

揭秘设计模式之工厂模式(代码片段)

...厂对象决定创建出哪一个产品类的实例,但它不属于GOF23种设计模式。简单工厂适用于工厂类负责创建的对象较少的场景,且客户端只需要传入工厂类的参数,对于如何创建对象的逻辑不需要关心。创建型模式。packagesimple;/***水果接... 查看详情

设计模式之简单工厂模式(代码片段)

2018-09-16 23:50:57简单工厂模式概述  简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。    UML类图如下:     该模式中包含的角色及其职责(摘自:百度百科)   工厂(Creator)角色 ... 查看详情

设计模式之工厂方法模式(代码片段)

工厂方法模式工厂方法模式介绍工厂方法模式设计方案:将披萨项目的实例化功能抽象成抽象方法,在不同的口味点餐子类中具体实现。工厂方法模式:定义了一个创建对象的抽象方法,由子类决定要实例化的类。工厂方法模式... 查看详情

34面向对象设计模式之工厂模式——简单工厂模式与工厂方法模式比较(代码片段)

用下面的例子比较:  usingSystem;namespaceLearnObjectpublicclassLeiFengpublicvoidSweep()Console.WriteLine("扫地");publicvoidWash()Console.WriteLine("洗衣服");publicvoidBuyRice()Console.WriteLine("买米");publi 查看详情

设计模式之工厂模式(代码片段)

工厂模式:多个不同对象的生成由同一个对象进行实例化,外部只需通过工厂类提供指定参数,就能返回对应的对象,而无需关心内部的实现细节.  示例代码如下:1usingSystem;2usingSystem.Collections.Generic;3usingSystem.Linq;4usingSyst... 查看详情

设计模式之工厂模式(代码片段)

工厂模式简介:工厂模式(FactoryPattern)是Java中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用... 查看详情

设计模式之简单工厂模式(创建型)(代码片段)

定义简单工厂模式又称静态工厂模式。可以根据参数的不同返回不同类的实例。定义一个类来创建其它类的实例。角色简单工厂模式包含如下角色Factory:工厂角色Product:抽象产品角色ConcreteProduct:具体产品角色简单实例publicabst... 查看详情

设计模式之工厂模式c++实现(代码片段)

参考书籍《HeadFirst设计模式》参考文章:设计模式:简单工厂、工厂方法、抽象工厂之小结与区别_superbeck的专栏-CSDN博客_简单工厂模式,工厂方法模式,抽象工厂模式简单工厂,工厂方法,抽象工厂都属于设计模式... 查看详情

设计模式之工厂模式c++实现(代码片段)

参考书籍《HeadFirst设计模式》参考文章:设计模式:简单工厂、工厂方法、抽象工厂之小结与区别_superbeck的专栏-CSDN博客_简单工厂模式,工厂方法模式,抽象工厂模式简单工厂,工厂方法,抽象工厂都属于设计模式... 查看详情