设计模式1

1.设计模式详情与应用

在这里插入图片描述
在这里插入图片描述

2.设计模式六大原则

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.什么是设计模式
  设计模式是一套被反复使用,容易被他人理解的,可靠的代码设计经验的总结

那我们常说的架构,框架,设计模式有什么关系?
a.架构是一套体系结构,是项目的整体解决方案
b.框架是可供复用的半成品软件,是具体程序代码
c.架构一般会涉及采用什么样的框架来加速和优化某部分问题的解决,而好的框架代码里
合理使用了很多设计模式

比如:laravel框架中就使用了很多的设计模式,其中包括单例模式,工厂模式,门面模式,
注册树模式(DI/IOC),适配器模式,观察者模式等多种设计模式

设计模式的目的就是为了更好的代码重用性,可读性,可靠性,可维护性


1.单一职责原则:一个类只负责一项职责
class Animal
{
 public function breathe($animal)
 {
  echo $animal."呼吸空气<br/>";
 }
}

class Program
{
  public function main()
  {
    $animal=new Animal();
    $animal->breathe('牛');
    $animal->breath('羊');
    $animal->breath('鱼');
  }
}

修改后:
class Terrestrial{
 public function breathe($animal)
 {
  echo $animal."呼吸空气<br/>";
 }
}

class Aquatic{
 public function breathe($animal)
 {
  echo $animal."呼吸水<br/>";
 }
}

class Programl
{
   public function main()
   {
     $terrestrial = new Animal();
     $terrestrial->breathe('牛');
     $terrestrial->breathe('羊');
     $aquatic = new Aquatic();
     $aquatic->breathe('鱼');
   }
}

优点:
1.可以降低类的复杂度,一个类只负责一项职责,逻辑简单;
2.提高类的可读性,提高系统的可维护性;
3.变更引起的风险降低,变更是必然的

/**
里氏代换原则
**/
class A{
public function subtract($a,$b){
return $a-$b;
}
}


//扩展
class C extends A
{
  public function subtract($a,$b)
  {
    //return parent::subtract($a,$b);
    return $a+b;
  }
  public function quadrature($a,$b)
    {
      return $this->subtract($a,$b)*100;
    }
}

class B
{
  public function main()
  {
   $class=new A();
   echo $class->subtract(100,50);
   echo $class->subtract(200,100);
  }
}

$b=new B();
$b->main();

//修正
abstract class D
{
  public  abstract function subtract($a,$b);
  public function quadrature($a,$b)
  {
        return $this->subtract($a,$b)*100;

  }
}
//通过子类继承实现抽象方法达到扩展目的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值