[DesignPatterns]二、简单工厂模式(SimpleFactoryPattern)

参考书籍:大话设计模式

督促自己可以一步一步把书本好好看完学完,为未来做努力

简单工厂模式

这是我看完后的想法,简单工厂模式就是透过一个单独类去做判断来new出指定的类,前提时,这些需要new出的都是继承于一个Class底下

书本上是以计算机加减乘除来做教学,而我自己也尝试看书练习了出来


过去

在过去可能用一个Switch去搞定判断各个逻辑所要计算的结果

缺点:这样子使用的话,是有用到了封装,但一旦运算逻辑多的时候,就要担心是否会改错改到其他逻辑


现在

一、先设计出每个运算逻辑的共通属性以及增加一个可override的方法去改写

二、接着建立Add和Sub的类,并且继承此共通类

备注一:由于继承时会将变量一并继承,所以当我们去其他class继承此class时,也就存在了NumA及NumB了

备注二:但构造函数无法被继承,需要使用base来做调用动作,在override vitural的function后,如果在继承那页要用到底层的function也需要记得使用base才可以调用

三、接着要怎么让计算机知道我们要使用哪一个运算逻辑呢?采用的就是Factory

简单工厂模式就是透过一个单独类去做判断来new出指定的类,前提时,这些需要new出的都是继承于一个Class底下

我们建立一个class去做统一控管,并且根据指定的操作符去new出指定的运算逻辑class

四、完成后,我们要开始使用这个Factory,声明共通类的变量并且调用此Factory的方法即可以完成(由于我们上面是有用到static,所以我们没有在做new的动作)

Static的补充:

使用?static?关键字声明的成员称为“静态成员

??静态成员可让同类建立的对象都可一起共用

??静态成员不需用?new?建立对象就可直接使用,?必须透过类名称再加上“.”操作符直接调用public?的静态成员即可。

非静态成员只有在使用时才会在主内存,否则会回到硬件去,数据也就跟着消失了。

但如果是静态成员,会永远跑在主内存上,数据也不会消失,所以可以不用new就可以叫用

Static补充参考网站:http://a7419.pixnet.net/blog/post/47082515-c%23-%E9%9D%9C%E6%85%8B%E6%88%90%E5%93%A1static



Github位置:https://github.com/Alan-Lun/DesignPatternsStudy

原文:大专栏  [DesignPatterns]二、简单工厂模式(SimpleFactoryPattern)

原文地址:https://www.cnblogs.com/chinatrump/p/11505516.html

时间: 2024-08-09 12:01:09

[DesignPatterns]二、简单工厂模式(SimpleFactoryPattern)的相关文章

设计模式学习(二)-简单工厂模式

---恢复内容开始--- 简单工厂设计模式 简单工厂模式定义: 简单工厂设计模式又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式.在简单工厂模式中,可以根据参数的不同返回不同类的实例.简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类. 简单工厂主要分为如下几个角色 抽象产品(abstract product):为所有具体产品的抽象表现,一般为抽象类 具体产品(product):为抽象产品的具体实现 生成产品工厂(facto

设计模式二(简单工厂模式)

学习笔记之设计模式二,简单工厂; 假设要取得数据库连接字符串, 1.创建抽象类: public abstract class ConnectString { //输出字符串 public abstract string GetConnectString(); } 2.创建各个实体类: public class SqlConnectString : ConnectString { public override string GetConnectString() { return "SQL Con

设计模式一:简单工厂模式

概念理解: 1. 解耦:一般通过增加一些抽象层,来实现 功能提供者和功能使用者 两者的解耦隔离.而如果想要扩展功能即增加功能,只需要添加相应的相应的新的功能类,修改中间的抽象类即可,并不用修改使用者部分的代码.并且功能提供者的代码可以复用.而且使得程序更容易理解. 简单工厂模式介绍 一.什么是简单工厂模式? 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个子类(这些子类继承  自一个父类或接口)的实例. 二.简单工厂模式包含的角色: 1.工厂角色(工厂类): 它负责创建所有

设计模式学习(二)——简单工厂模式、工厂模式、抽象工厂模式

最近抽时间将之前看过的"程序人生"公众号推送的一篇工厂模式的介绍进行了实践,为了加深自己理解,特将自己的学习理解记录于此.初识设计模式,就被设计模式的精妙深深吸引,感觉脱离设计模式的代码就失去了美丽.作为一个测试,平日写代码的机会肯定不如开发多,但是希望自己能通过努力逐步提升代码水平,有一天也能写出优美的代码.如果有对于工厂模式或其他设计模式感兴趣的朋友欢迎一起探讨. 一.简单工厂模式 定义:专门定义一个类用来创建其他类的实例,被创建的实例通常具有共同的父类. 场景一:恰巧今天,老大兴

C#面向对象设计之——简单工厂模式(二)

一.前言 简单工厂是一个负责生产对象的中间类,例如有加减乘除四个运算方法,它们继承父类,并重写父类的方法,简单工厂根据不同的运算符创建不同的实例对象赋值给父类,实现了面向对象的另一个原则——降低对象之间的耦合度.简单工厂模式解决了客户端直接依赖于具体对象的问题,客户端可以消除直接创建对象的责任,而仅仅是消费产品.简单工厂模式实现了对责任的分割. 简单工厂模式的缺点: 工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都会受到影响 系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,这样就会造

(二)设计模式之PHP项目应用(简单工厂模式:计算器)

1 简单工厂模式简介 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例. 2 模式组成 1)工厂(Creator)角色 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑.工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象. 2)抽象产品(Product)角色 简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口. 3)具体产品(Concrete Product)角色 是简单工厂模式的创建目标,所

深入理解设计模式(二):简单工厂模式

本文首先概述了简单工厂模式本质及结构,揭示了简单工厂模式的应用场景和优缺点,紧接着列举出了和工厂方法模式.策略模式的异同及应用场景,最后我们给出了简单工厂模式的实现方式及注意事项. 一.什么是简单工厂模式 简单工厂模式又称为静态工厂模式,实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例.简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例. 其实就是将一个具体类的实例化交给一个静态工厂方法来执行,它不属于GOF的23种设计

Headfirst设计模式的C++实现——简单工厂模式(Simple Factory)之二

为了引出后续的工厂方法,把在简单工厂模式的基础上增加了新功能——加盟店 简而言之就是把原来的单一简单工厂(能生产cheese和greek两种pizza)细分成了纽约地区的和芝加哥地区的(每种地区都能生产cheese和greek两种pizza) 和之前的简单工厂相比,PizzaStore中的PizzaFactory由构造时传入一个引用,从SimplePizzaFactory中派生出两个类,原来的cheese和greek Pizza也根据地区做了扩展. Pizza.h 1 #ifndef _PIZZ

设计模式学习笔记(二)--简单工厂模式和工厂模式

老生长谈的两个设计模式了,这里把这两个设计模式对比着来总结一下. 什么是简单工厂模式? 简单工厂模式:根据传入工厂类的参数动态决定要创建哪一个产品类的实例. UML图如下(以实现一个计算器为例): 简单工厂模式的Java代码实现如下: 1 package designPattern; 2 /** 3 * 简单工厂模式 4 * @author yiRain 5 * 6 */ 7 public class SimpleFactory { 8 9 public static void main(Str