简单工厂模式
来源:2-1 讲解工厂模式
qq_心晴_29
2019-11-05 12:20:45
简单工厂模式违背了solid原则中的哪几项?
4回答
同学你好,1、这里案例中,简单工厂并没有涉及子类扩展父类功能的里氏替换原则,高级模块不依赖低级模块依赖倒置原则等内容,所以也就不存在违反了。
2、设计模式中的SOLID原则-->分别是单一原则、开闭原则、里氏替换原则、接口隔离原则、依赖倒置原则:
1) 单一原则:指的是一个类或者一个方法只做一件事,比如:餐厅服务员负责把订单给厨师去做,而不是服务员又要订单又要炒菜。
2)开闭原则:对扩展开放,对修改关闭。就是一个类独立之后就不应该去修改它,而是以扩展的方式适应新需求。
比如:做了普通计算器程序,突然添加新需求,要再做一个程序员计算器,这时不应该修改普通计算器内部,应该使用面向接口编程,组合实现扩展。
3)里氏替换原则:子类可以扩展父类的功能,但不能改变父类原有的功能,比如:机动车必须有轮胎和发动机,子类宝马车和奔驰车不能没有轮胎属性或者没有发动机属性。
4)接口隔离原则:类不应该依赖不需要的接口,知道越少越好。比如:电话接口只约束接电话和挂电话,不需要让依赖者知道还有通讯录。
5)依赖倒置原则:高级模块不应该依赖低级模块,而是依赖抽象,就好像垃圾收集器不管垃圾是什么类型,要是垃圾就行,而不是必须要根据可回收垃圾、不可回收垃圾来分别收集。
一般情况下,一个程序并不会完全遵守SOLID原则,甚至有些设计模式是违反SOLID原则,具体的使用,就要根据开发时的需求来看了。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
好帮手慕小班
2019-11-06
同学你好,1、单一原则-->指的是一个类或者一个方法只做一件事。
2、简单工厂中-->根据分支选择创建实例化对象,执行这个方法就是根据传入参数执行对应创建的实例对象,比如:课程中的商场冰激凌工厂案例,
传入草莓味冰激凌的指令,就对应创建-->草莓味冰激凌,传入香草味冰激凌的指令,就创建-->香草味冰激凌,每次根据传入指令执行对应的一次创建任务,它的职责只有一个就是根据传入指令,创建冰激凌,所以它并没有违反单一职责原则。
我的回答解决了你的疑惑,请采纳。祝:学习愉快~
好帮手慕小班
2019-11-06
同学你好,1、简单工厂最大的特点两个:
1)、是封装类的实例化操作。
2)、是把创建选择(分支选择放在工厂类中)。
第二个特点当开发时反复增加了产品类,那么这个时候因为第二个特点反复的修改工厂类,那就算是无法满足开闭原则,对多个产品的扩展不利。
2、根据上面的理解,我们就可以认为简单工厂模式违背了SOLID原则中的开闭原则。如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
好帮手慕小班
2019-11-05
同学你好,简单工厂模式违背了SOLID原则中的开闭原则。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
相似问题