学习简单工厂模式

前端之家收集整理的这篇文章主要介绍了学习简单工厂模式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

初识这个词语,并不知道他说的是什么,而将这一章看完之后,才初步了解到什么是简单工厂模式,以及为什么会出现这种模式,下面先看看什么是简单工厂模式吧:

***********************************************************************************简单工厂模式***********************************************************************************

从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

简单工厂模式的UML类图


简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。

该模式中包含的角色及其职责

工厂(Creator)角色

  简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。

抽象产品(Product)角色

  简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。

具体产品(Concrete Product)角色

是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。

************************************************************************************************************************************************************************************

在对简单工厂模式有了一定的了解之后,下面谈谈在学习这一章的过程中问题及感受:

起初是小菜面试时遇到了一道编程题,要求是“请用C++、Java、C#或VB.NET任意一种面向对象语言实现一个计算器控制台程序,要求输入两个数和运算符号,得到结果。”在看了这道题之后,我想了好一会,自我感觉凭我现在的能力,来实现这个程序似乎可以说不可能,这其中涉及到好多的算法,并且我对面向对象还没有彻底的掌握,一个字:难!

在看到小菜编的程序之后,我还是挺佩服的,对于我这个初学C#的“小小菜”起码不可能这么快的编出来。看看小菜编的代码吧,着实发现了好多问题:

1.代码中的变量命名并不规范,没有统一的标准;

2.在判断语句上多次重复,使得计算机做了多次的无用功;

3.除法运算中没有考虑到除数为0时的情况;

4.用户输入的数字、字符没有限制;

5.可扩展性差,代码不能多次复用等。

在大鸟的指导下,小菜不断的更新着代码,将冗余的、无用的代码排除掉,并将业务逻辑和界面逻辑分开,让他们之间的耦合度下降,只有分离开,才可以达到容易维护或扩展。而后,大鸟还指导小菜怎样利用面向对象来设计这个控制台程序,从封装、继承、多态方面逐一介绍,从而由最单一的只能实现功能的一大段冗余代码,进化为将加减乘除类均分开的继承运算类,他们均是继承Operation运算类的各个子类。然而,在利用简单工厂模式之后,只需要输入运算符号,工厂就实例化出合适的对象,通过多态,返回父类的方式实现了计算器的结果。这样,将来不管是增加功能,还是修改功能,都不会影响其他的体系。

啧啧,这次又学到了不少的知识,努力中…

猜你在找的VB相关文章