美文网首页
设计模式(一):简单工厂模式

设计模式(一):简单工厂模式

作者: 骑着母猪砍大象 | 来源:发表于2018-11-26 20:28 被阅读34次

转载请注明作者和出处https://www.jianshu.com/p/7f60dd5c2825

运行平台: Windows

php版本: php7.0


针对设计模式的学习,结合自己的情况,我针对自己做了几点安排

1.学习这玩意一靠天赋,二靠机缘,三靠多看例子,实在看不懂过段时间再来看,多看其他文章的例子,或者开源框架或者扩展包里的源码,找找看里面所用到的设计模式。
2.一定要多敲代码,要多敲代码,要多敲代码,要多敲代码

  • 类名通常命名为:模块名称”+Factory,比如用户模块就用UserFactory
  • 方法通常命名为 "get"+接口名称,“create”+接口名称,例如一个接口叫UserEbi,那么方法名称通常为,getUserEbi或者createUserEbi

代码

class Man{
    public function getName(){
        echo "my name is laowang";
    }
}

class Women{
    public function getName(){
        echo "my name is xiaomei";
    }
}

class PersonFactory{
    public function createPerson($type){
        if($type == 'man'){
            $person = new Man();
        }elseif($type == 'women'){
            $person = new Women();
        }
        return $person;
    }
}

$type = "man";
$person = new PersonFactory();
$name = $person->createPerson($type);
$name = $name->getName();
var_dump($name);
输出结果:

简单工厂优缺点

  • 帮助封装
    简单工厂虽然简单,但是非常友好的帮助我们实现了组件的封装,然后让组件外部能真正面向接口编程。
  • 解耦
    通过简单工厂,实现了客户端和具体实现类的解耦。
    如果上面的例子,客户端根本不知道是由谁来实现,也不知道具体如何实现,客户端只是通过工厂获取它需 要的接口对象。
  • 可能增加客户端的复杂度
    如果通过客户端的参数来选择具体实现的类,那么就必须要客户端理解每个参数的含义和功能,这会增加客户端的使用难度,也暴露了内部实现。

相关文章

  • 设计模式-工厂模式

    设计模式1 设计模式2 工厂模式 工厂模式可简单的分为三类:简单工厂,工厂方法,抽象工厂 简单工厂模式 定义 简单...

  • 设计模式一、单例模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 简单单例(推荐...

  • 设计模式四、抽象工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 抽象工厂模式 ...

  • 设计模式三、工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 工厂模式 在一...

  • 设计模式

    设计模式(视频总结) [TOC] 一、简单工厂模式(Simple Factory) 简单工厂模式: 简单工厂模式属...

  • iOS设计模式-工厂模式

    工厂模式分为简单工厂模式,工厂模式、抽象工厂模式三类。 简单工厂模式 1. 定义 简单工厂模式并不是常用的设计模式...

  • Android设计模式:工厂设计模式

    目录 简单工厂模式工厂方法模式抽象工厂模式 简单工厂模式 简单工厂模式是所有工厂模式的基础,不属于23种设计模式范...

  • 相近设计模式比较

    设计模式干货: 简单工厂模式 vs. 工厂模式 vs. 抽象工厂模式简单工厂和工厂模式区别? 简单工厂没有多个子类...

  • iOS设计模式(三)之抽象工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • iOS设计模式(一)之简单工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

网友评论

      本文标题:设计模式(一):简单工厂模式

      本文链接:https://www.haomeiwen.com/subject/tvfiqqtx.html