程序设计6大原则

在程序设计中,我们往往要遵循着六个原则:

单一职责原则

就一个类而言,应该有且仅有一个引起它变化的原因。
避免一个类负责多个功能的实现,当发生更改时影响其他功能而致使复用成为不可能。

里氏替换原则

派生类(子类)对象能够替换其基类(父类)对象被调用。
即在程序中,任何调用基类对象实现的功能,都可以调用派生类对象来替换。
例子:
一个人可以实现沟通交流、吃东西、喝水等操作。
而一个人的派生类有中国人,日本人等

abstract class Personal
{
    public function __construct(
        //姓名
        public string $name,
        //年龄
        public int $age,
        //性别
        public string $sex
    ){}

    public abstract function eat();

    public abstract function drink();

    public abstract function say();
}
//中国人
class ChinaPersonal extends Personal
{
    public function eat()
    {
        return "中华五千年美食";
    }

    public function drink()
    {
        return "喝矿泉水";
    }

    public function say()
    {
        return "说普通话";
    }

}
//俄罗斯人
class RussiaPersonal extends Personal
{
    public function eat()
    {
       
        return "吃面包";
    }

    public function drink()
    {
       
        return "喝伏特加";
    }

    public function say()
    {
        return "乌拉";
    }
}

class PersonalBehavior
{
    public Personal $personal;

    public function __construct(Personal $personal)
    {
        $this->personal = $personal;
    }

    public function eat()
    {
        return $this->personal->eat();
    }

    public function drink()
    {
        return $this->personal->drink();
    }

    public function say()
    {
        return $this->personal->say();
    }


}


$chinaPersonal = new ChinaPersonal("谭勇",27,"男");

$chinaPersonalBehavior = new PersonalBehavior($chinaPersonal);

$russiaPersonal = new RussiaPersonal ("普京",70,"男");

$russiaPersonalBehavior = new PersonalBehavior($russiaPersonal );

echo "china personal eat: " . $chinaPersonalBehavior->eat() . PHP_EOL;
echo "russia personal eat: " . $russiaPersonalBehavior ->eat();

依赖倒置原则

程序设计应该依赖抽象接口,而不应该依赖具体实现。
即接口编程思想,接口是稳定的,实现是不稳定的,一旦接口确定,就不应该再进行修改了。根据接口的实现,是可以根据具体问题和情况,采用不同的手段去实现。

接口隔离原则

使用多个隔离接口,比使用单个接口要好。
经常提到的降低耦合,降低依赖,主要也是通过这个原则来达到的

迪米特法则

一个实体应当尽可能少的与其他实体之间发生相互作用。(可以降低耦合)

开闭原则

程序的设计应该是不约束扩展,即扩展开放,但又不能修改已有功能,即修改关闭。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值