• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP设计模式:php工厂模式的介绍(附代码)

php 搞代码 3年前 (2022-01-21) 23次浏览 已收录 0个评论

本篇文章给大家带来的内容是关于PHP设计模式:php工厂模式的介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

工厂模式是一种隐藏类的实例化细节,并且对一系列类使用相同的

本文来源gao!%daima.com搞$代*!码$网3

搞代gaodaima码实例化方式,可以很方便的扩展更多的实现同一个接口的类的创建对象的方式。
示例应用场景有:
1)在线支付
支付有多种方式,比如微信支付,支付宝支付,银联支付等,根据用户的选择而采用相应的支付方式;
2)访问量统计
在一个业务较复杂的项目中,用户对不同的对象进行访问,比如访问文章、访问作者、访问文章目录等,同样是访问记录,记录的信息却不一样

工厂模式的原理:
先根据多个对象的相同行为设计一个接口,再让这几个类去实现这个接口,接着制造一个实例化工厂,即可在工厂中根据不同参数实例化不同类。

工厂模式的具体实现:

/* *  形状接口 */interface Shape{    public function area();}/* * 长方形类,实现了形状接口 */class Rectangle implements Shape{    private $long;    private $width;    function __construct($long,$width)    {        $this->long = $long;        $this->width = $width;    }    /*     * 实现面积方法     */    public function area()    {        // TODO: Implement area() method.        return $this->long * $this->width;    }}/* * 正方形类,实现了形状接口 */class Square implements Shape{    private $width;    function __construct($width)    {        $this->width = $width;    }    /*     * 实现面积方法     */    public function area()    {        // TODO: Implement area() method.        return pow($this->width,2);    }}/* * 圆形类,实现了形状接口 */class Circle implements Shape{    private $radiu;    function __construct($radiu)    {        $this->radiu = $radiu;    }    /*     * 实现面积方法     */    public function area()    {        // TODO: Implement area() method.        return pi()*pow($this->radiu,2);    }}class ShapeFactory{    /*     * 获取实例化的形状对象     * ...$args 表示接受不限个数的参数     */    public function getShpae(...$args)    {        /*         * 第一个参数为形状名,后面的参数为形状的尺寸         */        switch($args[0])        {            case 'Rectangle':                return new Rectangle($args[1],$args[2]);            break;            case 'Square':                return new Square($args[1]);            break;            case 'Circle':                return new Circle($args[1]);            break;        }        return null;    }}$factory = new ShapeFactory();$shape = $factory->getShpae('Rectangle',2,3);$area[] = $shape->area();$shape = $factory->getShpae('Square',2);$area[] = $shape->area();$shape = $factory->getShpae('Circle',2);$area[] = $shape->area();print_r($area);/*Array(    [0] => 6    [1] => 4    [2] => 12.566370614359)*/

相关文章推荐:

php如何获取文件一级目录(纯代码)

php如何利用经度和纬度来计算两点之间的距离(纯代码)

以上就是PHP设计模式:php工厂模式的介绍(附代码)的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP设计模式:php工厂模式的介绍(附代码)

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址