摘要:简单工厂模式就是遵循了这一原则,它让不同职责的类各司其职。重点来了,简单工厂模式的不足但是简单工厂模式有一个不足,虽然它遵循了单一职责原则,但它违反了另一条同样很重要的原则开放封闭原则。
该文章属于《编程中的那些经典套路——设计模式汇总》系列,并且以下内容基于语言PHP
面向对象五大原则中有一点非常重要的原则:单一职责原则。
简单工厂模式就是遵循了这一原则,它让不同职责的类各司其职。
简单工厂模式是面向对象多态性的一个应用,它的好处在于:
代码具有一定的拓展性
遵循了单一职责原则
属于面向接口编程
简单工厂模式提供了一个对外的类 Client和实际工作的类,外界只需要传递特定的参数就可以调用不同的实际功能类,而不需要直接面对实际类与函数,拓展性大大增强。
一言不合上代码。
简单工厂模式.php
work(); } } $bankstaff = new Client(); print_r($bankstaff->working("接待")); // output :开始接待 ?>
简单工厂模式可以通过传递对应的参数从而调用指定的类方法,后期需要增加职位的话,可以直接新增一个类然后写一个switch ($type) {case’condition’: }即可。
重点来了,简单工厂模式的不足:
但是简单工厂模式有一个不足,虽然它遵循了单一职责原则,但它违反了另一条同样很重要的原则:开放封闭原则。
如果新增一个财务职位,那么我们还要修改 Client类,增加一个switch ($type) {case’condition’: }判断,这无疑是十分灾难的,因为写好的代码我们最好不要再去碰它,因为很可能造成未知的原因,你说是不?
由此衍生出更加规范,拓展性更强,遵循了开放封闭原则的的工厂模式(没有简单):
该文章属于《编程中的那些经典套路——设计模式汇总》系列
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/21696.html
摘要:该文章属于编程中的那些经典套路设计模式汇总系列,并且以下内容基于语言前面我们写了简单工厂模式,编程中的那些套路关于简单工厂模式,但简单工厂模式有一些不足违反开放封闭原则,所以需要设计出一套更加规范的设计模式。 该文章属于《编程中的那些经典套路——设计模式汇总》系列,并且以下内容基于语言PHP 前面我们写了简单工厂模式,《编程中的那些套路——关于简单工厂模式》,但简单工厂模式有一些不足(...
该文章属于《编程中的那些经典套路——设计模式汇总》系列,并且以下内容基于语言PHP 今天讲讲策略模式,策略模式 和工厂模式十分相像(或者说在代码逻辑层面,他们是一样的)。 但策略模式与工厂模式有一点很重要的区别: 工厂模式:我们着眼于得到对象,并操作对象, 策略模式:我们着重得到对象某方法的运行结果 看代码 根据不同的情况使用不同的策略,即策略模式,与工厂模式确实很像,但他确确实实不是...
摘要:如果看不懂的话,可以在评论区中提问,我会第一时间回答你无论何时我一直都在嗯哼该文章属于编程中的那些经典套路设计模式汇总系列 在正式阅读前,我先谈谈我们该用什么姿势和心态学习设计模式: 如果你还没有过多的编程经验(泛指半年以下),我建议你把它当做小说来看,能看懂多少是多少,因为半年以下经验的程序员用到设计模式的情况只会出现在面试上,至于实际工作中?相对来说这部分不会由你负责。 如果你已...
该文章属于《编程中的那些经典套路——设计模式汇总》系列,并且以下内容基于语言PHP 在设计模式中,单例模式和工厂模式)可以说是使用的最普遍的设计模式了,所以掌握此种模式尤为重要。 单例模式一般使用在资源共享和需要控制资源的情况下。 例如:购物车,回收站,数据库连接池,计数器,配置文件共享等所有项目中只需要存在一个的模块,你都可以采用单例模式。 单例模式的好处就在于当前进程只产生一个对象(或者叫...
摘要:我们应该写一段拓展性强与维护性较强的代码,由此衍生出观察者模式。 该文章属于《编程中的那些经典套路——设计模式汇总》系列,并且以下内容基于语言PHP 今天我们来谈谈观察者模式,这是一个经常用到的设计模式。 让我们想象一个场景:一个网站有不同等级区域的用户,不同等级的的用户登录后可以获得对应的服务(一级用户登录后获得一级服务,二级用户登录后获得二级服务,…以此类推)。那么我们如何写这段业...
阅读 1133·2023-04-26 00:34
阅读 3331·2023-04-25 16:47
阅读 2085·2021-11-24 11:14
阅读 3068·2021-09-26 09:55
阅读 3586·2019-08-30 15:56
阅读 3180·2019-08-29 16:57
阅读 1878·2019-08-26 13:38
阅读 2646·2019-08-26 12:22