2 dongchao018 dongchao018 于 2014.12.09 15:02 提问

工厂方法真的支持OCP 开闭原则吗?

开闭原则:我们在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,换句话说就是,应当可以在不必修改源代码的情况下改变这个模块的行为.
工厂方法增加新的方法类的时候,不是要修改接口、然后再修改所有的相关类么。这岂不是违背了开闭原则

1个回答

jw463001558
jw463001558   2015.06.13 01:09

工厂什么的都只是假象,利用反射可以

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
从开闭原则看工厂模式
开闭模式是指对扩展开放,对修改关闭,说的更通俗点,就是说开发了一个软件,应该可以对它进行功能扩展(开放),而在进行这些扩展的时候,不需要对原来的程序进行修改(关闭)!比如说,我们要做一个客户订购水果的流程,根据面向对象的原则,我们分别创建如下类,基类Fruit,Fruit的派生类Apple,Pear,Orange。客户类Customer,订购水果的流程分为生产水果和打包水果,Customer类
开闭原则与工厂模式
开闭原则很简单,一句话:“Closed for Modification; Open for Extension”——“对变更关闭;对扩展开放”。  结合工厂模式的设计,如果系统需要加入一个新的产品,那么所需要的就是向系统中加入一个这个产品类以及它所对应的工厂类。没有必要修改客户端,也没有必要修改抽象工厂角色或者其他已有的具体工厂角色。对于增加新的产品类而言,这个系统完全支持“开-闭”原则。
java设计六大原则之开闭原则(OCP)
抽象化是关键 定义抽象类或接口,使其可以有很多的具体实现(openfor extension) 预见所有的需要,在任何情况下都不再修改上层商业逻辑(closedfor modification) 对可变性的封装原则 一种可变性不应当散落在代码的很多角落里,应当将其封装在对象里面,同一种可变性的不同表象意味着同一个继承等级结构中的具体子类,继承最大的用途就是作为封装变化的方法 一种
设计模式六大原则之--开闭原则(OCP)
1.开闭原则:Open Closed Principle, OCP) 定义:Software entities like classes, modules and functions should be open for extension but closed for modifications.(一个软件实体如类,模块和函数应该对扩展开放,对修改关闭。) 2.理
六大原则之“开闭原则(OCP)“笔记
1.开闭原则:Open Closed Principle, OCP) 定义:Software entities like classes, modules and functions should be open for extension but closed for modifications.(一个软件实体如类,模块和函数应该对扩展开放,对修改关闭。) 2.理
设计模式六大原则——开闭原则(OCP,Open Close Principle)
简介开闭原则(OCP)是面向对象设计中“可复用设计”的基石,是面向对象设计中最重要的原则之一,其它很多的设计原则都是实现开闭原则的一种手段。1988年,勃兰特·梅耶(Bertrand Meyer)在他的著作《面向对象软件构造(Object Oriented Software Construction)》中提出了开闭原则,它的原文是这样:“Software entities should be ope
OOD三个设计原则:SRP(单一职责原则)、OCP(开闭原则)、LSP(Liskov替换原则)
单一职责原则(SRP : Single Response Principle) 就一个类而言,应该仅有一个引起它变化的原因。 在这里,职责的定义是: “变化的原因”。 对于何时遵循SRP有以下的考虑: 1.如果应用程序的变化会影响到类中某一种职责,那么就应该将它与另一种职责分开,这样做可以避免客户应用程序和类中的这两职责耦合在一起。 2.如果应用程序的变化总是会导致两个职责同时变化,那么
面向对象OOP的5原则:开放封闭原则--OCP
PHP面向对象OOP的5原则:开放封闭原则--OCP        一、OCP简介(OCP--Open-Closed Principle):php开源comSoftware entities(classes,modules,functions,etc.) should be open for extension, but closed for modification。软件实体
设计原则(一)"开-闭"原则(OCP)
经典力学的基石是牛顿三大定律。而面向对象的可复用设计的第一块基石,便是所谓的”开-闭“原则(Open-Closed Principle,常缩写为OCP)。一、什么是开闭原则“开-闭”原则讲的是:一个软件实体应当对扩展开放,对修改关闭。这一原则最早由Bertrand Meyer提出,英文原文是:Software entities should be open for extension,but clo
设计模式之工厂方法模式和开放-封闭原则
设计模式之工厂方法模式和开放-封闭原则            以下所有仅供记录和参考,如有问题,我也没办法,但还是请:转载注明出处。            关于简单工厂模式参见之前写的设计模式之简单工厂模式。          在记录简单工厂模式的时候有提到这么一句话:简单工厂模式是工厂模式的特殊情况。其实话也不能这么说,研究了工厂方法模式之后,才发现,它是基于面向对象的“开放-封闭原则