策略模式:
十年的彝良网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整彝良建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“彝良网站设计”,“彝良网站推广”以来,每个客户项目都认真落实执行。策略模式我们无法通过字面意思来理解了:
首先,创建一个接口,定义子类的实现规范;
第二步,根据不同的业务逻辑,书写不同的方法,同时实现第一步中的接口.
第三步,写一个独立的类,其中有两个方法,第一个为初始化(传入第二步中的子类的对象),第二个方法 为统一的执行类(当然有了接口这个也可以省略了).
如下图:
下面是一个完整的demo:
//通过接口定义子类实现规范
interface Strategy{
public function echoInfo();
}
//实现方法,并且每个都用不同的业务逻辑(phper,javaer)
class Phper implements Strategy{
public function echoInfo()
{
echo "this is phper class";
}
}
class Javaer implements Strategy{
public function echoInfo()
{
echo "this is javaser class";
}
}
//建立一个独立的类,通过其中的一个方法,传入不同的对象来实现不同的处理过程
class Done{
//用来存储实例化的对象
private $obj;
//通过传入对象将对象赋给私有属性
public function __construct(Strategy $obj)
{
$this->obj=$obj;
}
//通过统一的实现方法来实现不同的对象内部的方法(因为有接口的限制,这个也可以省略)
public function go()
{
$this->obj->echoInfo();
}
}
//实例化独立的类,传入不同的对象参数
$obj=new Done(new Javaer);
//输出结果
$obj->go();
?>
策略模式一般用在一些输出结果需要多样话的地方,比如客户可能导出excel表,也可能导出word文件,或者生成一个柱状图等等.
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。