您现在的位置是:首页 > 技术博客 > PHP设计模式六大原则之里氏替换原则

PHP设计模式六大原则之里氏替换原则

2021-08-10文远技术博客991304

PHP

1、什么是里氏替换

当需要子类增加功能的时候,对父类做到只扩展新功能,不修父类改原本功能的原则

2、代码示例

//使用抽象类定义抽象方法和公用方法

abstract class SetStr {  //继承本类的所有类的Str方法各自实现
public abstract function Str();   /*    * 继承本类的所有类都可以使用rand_str类 */ public function rand_str() { $arr = ['!','#','$','%','^','&','*','(',')','_','-','+','=']; $indexs = array_rand($arr,4); $str = $this->Str(); foreach ($indexs as $index){ $str .= $arr[$index]; } return $str; } } class Num extends SetStr { public function Str() { return rand(0,10000); } } class English extends SetStr { public function Str() { $arr = ['a','b','c','d','e','f','g']; $indexs = array_rand($arr,4); $str = ''; foreach ($indexs as $index){ $str .= $arr[$index]; } return $str; } }
/* *  使用如下*/class client
{
    public function run()
    {
        $SetStr = new Num();
        $rand_str = new English();
        echo "4位随机数字字符串:",$SetStr->Str().PHP_EOL;
        echo "4为随机英文字符串:",$rand_str->Str(),PHP_EOL;
        echo "随机数字与特殊字符串:".$SetStr->rand_str(),PHP_EOL;
        echo "随机英文与特殊字符串:".$rand_str->rand_str();
    }
}

$client = new client();
$client->run();


3、优点

1、代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性
2、提高代码的复用性
3、子类可以形似父类,但是又异于父类
4、提高代码的可扩展性,实现父类的方法就可以了
5、提高产品或者项目的开放性

文章评论

看完文章了吗?谁便说点吧

发表 captcha

暂无评论