使用简单工厂模式的优点是什么?
发布网友
发布时间:2022-04-06 02:14
我来回答
共6个回答
懂视网
时间:2022-04-06 06:35
?在上文中解析了配置文件的加载流程,在对不同类型的文件加载没有去做过多的解释,接下里就针对下面问题进行简单的说明。
?在之前看到的loadFile方法中,文件类型为PHP或者yaml程序就打断了,就不会在去执行后边的pares方法。
那么这个parse方法是做什么的呢!
进入到paras这个方法后,首先看注释
随后使用了一个工厂模式去加载think/config/driver下的文件
进入到factory这个方法后,这块内容属于容器的就不过多解释了。
只需要知道这里最终会返回一个实例给paras
方法的$object变量
最终还是使用在上文中提到的set方法,而内部的object->parse()就是执行返回对象的内部方法,例如下图展示三个类型。ini、json、xm三个类型都存在同样的方法
这是ini类型,其它俩个的类型也是一毛一样的,就是会有同样的方法来实现对应的功能
「简单梳理一下工厂模式加载不同类型的配置」
这里咔咔后期会单独出一篇文章模仿这个实现另一个功能,导图会有所有的文章链接哦!
在ini.php中看到了一个方法parse_ini_file
,其实这个方法根据之前的学习就大概能了解到时把ini类型的配置文件转为数组形式。这里就不做演示了,很是简单哈!
那么其它俩种类型都是为了把文件数据转为数组的。
?坚持学习、坚持写博、坚持分享是咔咔从业以来一直所秉持的信念。希望在偌大互联网中咔咔的文章能带给你一丝丝帮助。我是咔咔,下期见。
?
热心网友
时间:2022-04-06 03:43
简单工厂模式的优点:
1、工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅“消费”产品;
2、简单工厂模式通过这种做法实现了对责任的分割,它提供了专门的工厂类用于创建对象。
3、客户端无须知道所创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可,对于一些复杂的类名,通过简单工厂模式可以减少使用者的记忆量。
4、通过引入配置文件,可以在不修改任何客户端代码的情况下更换和增加新的具体产品类,在一定程度上提高了系统的灵活性。
扩展资料:
简单工厂模式的缺点:
1、由于工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。
2、使用简单工厂模式将会增加系统中类的个数,在一定程序上增加了系统的复杂度和理解难度。
3、系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,在产品类型较多时,有可能造成工厂逻辑过于复杂,不利于系统的扩展和维护。
4、简单工厂模式由于使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构。
参考资料来源:百度百科-简单工厂模式
热心网友
时间:2022-04-06 05:01
工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A(). 工厂模式也是用来创建实例对象的,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。
类Sample为例,要创建Sample的实例对象:
Sample sample=new Sample();
可是,实际情况是,通常我们都要在创建sample实例时做点初始化的工作,比如赋值 查询数据库等
首先,我们想到的是,可以使用Sample的构造函数,这样生成实例就写成:
Sample sample=new Sample(参数);
但是,如果创建sample实例时所做的初始化工作不是象赋值这样简单的事,可能是很长一段代码,如果也写入构造函数中,那你的代码很难看了
初始化工作如果是很长一段代码,说明要做的工作很多,将很多工作装入一个方法中,相当于将很多鸡蛋放在一个篮子里,是很危险的,这也是有背于Java面向对象的原则,面向对象的封装(Encapsulation)和分派(Delegation)告诉我们,尽量将长的代码分派“切割”成每段,将每段再“封装”起来(减少段和段之间偶合联系性),这样,就会将风险分散,以后如果需要修改,只要更改每段,不会再发生牵一动百的事情。
我们需要将创建实例的工作与使用实例的工作分开, 也就是说,让创建实例所需要的大量初始化工作从Sample的构造函数中分离出去。
你想如果有多个类似的类,我们就需要实例化出来多个类。这样代码管理起来就太复杂了。
这个时候你就可以采用工厂方法来封装这个问题。
不能再用上面简单new Sample(参数)。还有,如果Sample有个继承如MySample, 按照面向接口编程,我们需要将Sample抽象成一个接口.现在Sample是接口,有两个子类MySample 和HisSample
Sample mysample=new MySample();
Sample hissample=new HisSample();
采用工厂封装:
public class Factory{
public static Sample creator(int which){
//getClass 产生Sample 一般可使用动态类装载装入类。
if (which==1)
return new SampleA();
else if (which==2)
return new SampleB();
}
}
那么在你的程序中,如果要实例化Sample时.就使用
Sample sampleA=Factory.creator(1);
举个更实际的例子,比如你写了个应用,里面用到了数据库的封装,你的应用可以今后需要在不同的数据库环境下运行,可能是oracle,db2,sql server等,那么连接数据库的代码是不一样的,你用传统的方法,就不得不进行代码修改来适应不同的环境,非常麻烦,但是如果你采用工厂类的话,将各种可能的数据库连接全部实现在工厂类里面,通过你配置文件的修改来达到连接的是不同的数据库,那么你今后做迁移的时候代码就不用进行修改了。
我通常都是用xml的配置文件配置许多类型的数据库连接,非常的方便。PS:工厂模式在这方面的使用较多。
热心网友
时间:2022-04-06 06:36
防止对数据的破坏,实现多态。
热心网友
时间:2022-04-06 08:27
可以动态创建对象~~
简单工厂就是生产对象的工厂
热心网友
时间:2022-04-06 10:35
封装
工厂模式的好处 简单工厂模式的优点
简单工厂模式的优点主要体现在以下几个方面:1. 封装性:简单工厂模式封装了对象的创建过程,使得客户端代码不再需要关心对象的创建细节,从而降低了客户端代码的复杂性。客户端只需要调用工厂方法,并传入必要的参数,就可以获得所需的对象实例。2. 解耦:简单工厂模式将对象的创建与使用相分离,这意味着...
智能运维AIOps是什么?企业为什么要用它?
智能运维,又称AIOps(Artficial Intelligence for Operations),是一种将大数据、人工智能或机器学习技术赋能传统IT运维管理的平台(技术)。2016年由Gartner正式提出,被喻为传统手工运维ITOM(IT Operations Management)和ITOA(IT Operati...
使用简单工厂模式的优点是什么?
简单工厂模式的优点:1、工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅“消费”产品;2、简单工厂模式通过这种做法实现了对责任的分割,它提供了专门的工厂类用于创建对象。3、客户端无须知道所创建的具体产品类的类名,只需要知道具...
简单工厂模式优缺点
这种模式的优势在于,它将对象的创建逻辑封装在工厂类中,使得客户端只需关注“消费”对象,而不必关心其实现细节,从而提升了代码的可维护性和软件体系结构的优化。各个组件之间的职责明确,有助于保持系统的清晰度。然而,简单工厂模式也存在一些缺点。首先,工厂类集中了所有实例的创建逻辑,这可能违反了...
简单工厂模式的优缺点
优点工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.通过使用工厂类,外界可以从直接创建具体产品对象的尴尬局面摆脱出来,仅仅需要负责“消费”对象就可以了。而不必管这些对象究竟如何创建及如何组织的.明确了各自的职责和权利,有利于整个软件体系结构的...
简单工厂模式是什么?
简单工厂模式具有以下几个显著特点:1. 易于理解:由于其结构简单明了,学习和实现起来相对容易。2. 解耦合:通过工厂类统一创建对象,使得客户端与具体对象的创建逻辑解耦。3. 维护性高:如果对象的创建逻辑需要修改,只需修改工厂类,客户端代码无需变动。三、工作原理 简单工厂模式中,存在一个专门用于...
Golang 设计模式之工厂模式
简单工厂模式在创建对象时,虽然直观易懂,但不支持类的扩展。其优点是代码简洁,劣势是扩展性差。例如,若要添加新类型的水果,需修改工厂类。而工厂方法模式解决了这一问题,通过抽象工厂接口和具体工厂类分离,扩展新水果类时仅需新增实现类,保持原有代码不变。抽象工厂模式进一步将组件拆分为产品族和...
软件架构师必学技术,24种设计模式与7大原则
优点方面:简单工厂模式:通过工厂类集中控制产品创建逻辑,使客户端无需直接创建产品对象,降低偶合性,优化软件体系结构。工厂方法模式:工厂类只负责创建单一产品,简洁易维护,完全满足开闭原则,支持产品扩展。抽象工厂模式:将产品创建和使用分离,易于交换产品系列,降低模块间耦合性,提高开发效率。缺点...
深入解析Java工厂模式及其应用场景
Java工厂模式的实现有三种形式:简单工厂模式,通过单一工厂类创建所有对象,但可能违背开闭原则;工厂方法模式,通过接口和工厂类提供多态性,增加了灵活性;抽象工厂模式则更进一步,创建一组相关对象,适用于多个产品类的组合。工厂模式的优势在于解耦、灵活和易于扩展,便于在不改变使用代码的情况下,添加新...
为什么要使用工厂模式
使用工厂模式有一些好处。问题六:有必要所有类都用简单工厂模式创建吗 简单工厂模式一般用在继承类比较多的情况下,只要声明其父类,子类通过工厂就可以创建出来 而客户端就不用关心具体子类怎么实现了 如果你的子唬就一两个,那就没这个必要 好几种设计模式都是相互矛盾的,要看适用的环境 刚开始学...
工厂模式有哪些
简单工厂模式:简单工厂模式的核心思想是由一个专门的类来创建其他类的实例,这个专门的类就称为工厂类。它通常根据某个条件决定创建哪个类的实例。这种模式的优点是简单直接,适用于产品种类较少的情况。但随着产品种类的增加,工厂类可能会变得过于庞大和复杂。工厂方法模式:工厂方法模式是对简单工厂模式...