旗下导航:搜·么
当前位置:网站首页 > PHP问题 > 正文

php 工场形式和战略形式区分【php题目】

作者:搜搜PHP网发布时间:2019-11-26分类:PHP问题浏览:103


导读:工场是建立型形式,它的作用就是建立对象;战略是行动型形式,它的作用是让一个对象在很多行动中挑选一种行动;关注点不一样一个关注对象建立一个关注行动的封装(引...
工场是建立型形式,它的作用就是建立对象;

战略是行动型形式,它的作用是让一个对象在很多行动中挑选一种行动;

关注点不一样

一个关注对象建立

一个关注行动的封装(引荐进修:PHP视频教程)

处理差别的题目

工场形式是建立型的设想形式,它接收指令,建立出符合要求的实例;它重要处理的是资本的一致分发,将对象的建立完整自力出来,让对象的建立和细致的运用客户无关。重要应用在多数据库挑选,类库文件加载等。

战略形式是为了处理的是战略的切换与扩大,更简约的说是定义战略族,离别封装起来,让他们之间能够互相替代,战略形式让战略的变化自力于运用战略的客户。

工场相当于黑盒子,战略相当于白盒子;

实例:

<?php
header('content-type:text/html;charset=utf-8');
abstract class Product {
abstract public function getName();
}
class ProductA extends Product  {
public function getName() {
echo '这是A商品<br>';
}
}
class ProductB extends Product {
public function getName() {
echo '这是B商品<br>';
}
}
//工场形式
class ProductFactory {
public static function create($num) {
switch($num) {
case 1:
return new ProductA();
case 2:
return new ProductB();
}
return null;
}
}
//通报差别的参数猎取差别的对象
$obj=ProductFactory::create(1);
$obj->getName(); //这是A商品
$obj=ProductFactory::create(2);
$obj->getName(); //这是B商品
 
//=======战略形式
<?php
header('content-type:text/html;charset=utf-8');
interface IStrategy {
function ontheway();
}
class Walk implements IStrategy {
public function ontheway() {
echo '走着去<br>';
}
}
class Bick implements IStrategy {
public function ontheway() {
echo '骑自行车去<br>';
}
}
class Bus implements IStrategy {
public function ontheway() {
echo '坐巴士去<br>';
}
}
//战略形式,通报差别的参数,挪用差别的战略
class Strategy{
public function getWay(IStrategy $obj) {
$obj->ontheway();
}
}
$obj=new Strategy();
$obj->getWay(new Walk); //走着去
$obj->getWay(new Bick); //骑自行车去
$obj->getWay(new Bus); //坐巴士去

更多PHP相干技术文章,请接见PHP图文教程栏目举行进修!

以上就是php 工场形式和战略形式区分的细致内容,更多请关注ki4网别的相干文章!

标签:php