工厂方法模式
来源:互联网 发布:js中div显示隐藏 编辑:程序博客网 时间:2024/06/15 20:54
通过定义一个抽象的核心工厂类,并定义创建产品对象的接口,创建具体产品实例的工作延迟到其工厂子类去完成。这样做的好处是志关注工厂类的接口定义,而具体的产品实例交给具体的工厂子类去创建。当系统需要新增一个产品,无需修改现有系统代码,只需要添加一个具体产品类和其对应的工厂子类,是系统的扩展性变得更好,符合面向对象的开闭原则。
<?php interface Animal{ public function run(); public function say(); } class Cat implements Animal{ public function run(){ echo "I ran slowly <br>"; } public function say(){ echo "I am cat class <br>"; } } class Dog implements Animal{ public function run(){ echo "I ran slowly <br>"; } public function say(){ echo "I am dog class <br>"; } } abstract class Factory{ abstract static function createAnimal(); } class CatFactory extends Factory{ public static function createAnimal(){ return new Cat(); } } class DogFactory extends Factory{ public static function createAnimal(){ return new Dog(); } } $cat=CatFactory::createAnimal(); $cat->say(); $cat->run(); $dog=DogFactory::createAnimal(); $dog->say(); $dog->run();?>工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了面向对象的多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。在工厂方法模式中,核心的工厂类不在负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类仅仅负责给出具体工厂必须实现的接口,而不负责产品类被实例化这种细节,使工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。
阅读全文
0 0
- 工厂模式 -- 工厂方法
- 工厂模式-工厂方法
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式---工厂方法模式
- 【模式】工厂方法模式
- 工厂方法,抽象工厂模式
- C#工厂模式-工厂方法
- 工厂模式 和工厂方法
- 工厂模式-C-工厂方法
- 工厂模式以及工厂方法
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂、工厂方法、抽象工厂模式
- 工厂模式(简单工厂、工厂方法)
- 简单工厂|工厂方法|抽象工厂模式
- 设计模式-工厂模式(简单工厂模式+工厂方法模式)
- 用python实现一个清理工具的代码
- Jquery EasyUI 按钮控制面板显示与隐藏demo(1)
- 身份认证与session对象
- jsp一改动,就需要重启的解决方案
- OpenCV 编译出的so库改名办法
- 工厂方法模式
- preg_replace—替换内容中包括$特殊符号时
- sonar rule
- JAVA疯狂讲义第三版4.6.6数组的应用举例代码功能扩展
- 简单的前端轮播(无自动跳转)
- STM32F4的HAL库开启串口空闲中断
- JPA主键生成策略
- HTTP协议格式
- PPT这样学就对了之首页制作