当前位置: 首页 > news >正文

php技术的网站建设实录方案怎样做网站权重

php技术的网站建设实录方案,怎样做网站权重,做一个网站需要服务器吗,wordpress定时发布失败处理设计模式的目的就是尽量减少“变化”对程序的影响#xff0c;尤其是对客户程序的影响。AbstractFactory模式作为创建型模式的一种#xff0c;解决的就是“new”在变化中可能引起的问题。 先来看看new有何种不好#xff0c;举个创建汽车的车门的例子#xff1a; 很自然的一… 设计模式的目的就是尽量减少“变化”对程序的影响尤其是对客户程序的影响。AbstractFactory模式作为创建型模式的一种解决的就是“new”在变化中可能引起的问题。 先来看看new有何种不好举个创建汽车的车门的例子 很自然的一种想法是Door *door new Door(); 但是如果遇到创建老爷车的车门创建现代车的车门这段代码就无所适从了。 OO为我们提供了哪些精华的思想“封装”是的将车门的创建封装起来于是我们有了静态工厂方法  客户程序代码 1Door* door  doorFactory-CreateDoor();库程序代码 1class DoorFactory 2{ 3public: 4  Door* CreateDoor() 5  { 6    return new Door(); 7  } 8}客户程序在此是不会变化的不管你是老爷车门现代车门还是钻石车门这些和客户程序代码都是没关系的究竟CreateDoor出来如何结果都交给多态来判断我们不用操心。 但是库程序代码还是需要更改的但我们已经将“变化”与客户程序隔离了。 需求又有变化了不光要创建车门还需要创建引擎车灯而且还是不同风格的。 这时候静态工厂已经应付不来了静态工厂有其自身的缺陷“不能应对不同系列对象”的变化。 动机 软件系统中经常面临“一系列相互依赖的对象”的创建工作。两个特征“一系列”“相互依赖” 将创建过程封装起来避免“客户程序”和“多系列具体对象的创建工作”的紧耦合。 意图 提供一个接口让该接口负责创建一系列“相关或者相互依赖的对象”无需指定他们具体的类。GoF23 思路 对于客户程序来说只依赖于三个抽象的类AbstractFactoryAbstractProductAAbstractProductB。 以下是客户程序代码 1class CarManager  2{  3protected:  4    AbstractFactory *abstractFactory;  5public:  6    //创造Car  7    void createCar(AbstractFactory *abstractFactory)  8    {  9        abstractFactory-CreateEngine(); 10        abstractFactory-CreateDoor(); 11        abstractFactory-CreateLight(); 12    } 13    //其他的操作 14    void run(){} 15}; 16 17int _tmain(int argc, _TCHAR* argv[]) 18{ 19    CarManager *carManager  new CarManager(); 20    //创建Classic风格的汽车 21    carManager-createCar(new ClassicFactory()); 22 23    return 0; 24}所有关于创建的操作都是用抽象类完成的对于具体是何种类型的对象由多态实现以此来使“客户代码”和“多系列具体对象的创建工作”达到松耦合。 如果遇到还需要扩展其他风格的汽车可以按下图的思路 红色的部分对应新风格的车辆只需在库程序中添加ConcreteFactory3,ProductA3,ProductB3三个类而对于客户代码CarManager来说完全不受影响。 总结 AbstractFactory模式有以下三个要点 1.应对的问题是“多风格的系列对象创建”的变化问题“系列对象”指的是这些对象之间有相互依赖或者相互作用的关系。否则使用“静态工厂”足以。 2.抽象工厂和静态工厂的核心是“封装”将对象的创建进行封装避免“new”引起的问题 3.抽象工程的另一个核心是“多态”通过动态绑定来处理“不同风格”的问题 注 AbstractFactory模式主要针对“风格”的变化如果“对象”本身经常变化那么该模式并不适用。 自己做的示例代码仅供参考 1//   2// AbstractFactoryTest for AbstractFactory Pattern Test   3//   4//   5   6#include stdafx.h   7#include iostream   8using namespace std;   9  10//Engine,Door,Light are the Abstract Product  11//这三个类对应UML图中的AbstractProduct类  12class Engine  13{  14public:  15    Engine()  16    {  17        coutAbstract Engine Createendl;  18    }  19    virtual void doSomething()  0;  20};  21  22class Door  23{  24public:  25    Door()  26    {  27        coutAbstract Door Createendl;  28    }  29    virtual void doSomething()  0;  30};  31  32class Light  33{  34public:  35    Light()  36    {  37        coutAbstract Light Createendl;  38    }  39    virtual void doSomething()  0;  40};  41  42//Abstract Factory  43class AbstractFactory  44{  45public:  46    AbstractFactory()  47    {  48        coutAbstractFactory Createendl;  49    }  50    virtual Engine* CreateEngine()  0;  51    virtual Door* CreateDoor()  0;  52    virtual Light* CreateLight()  0;  53};  54  55//SpeedEngine,SpeedDoor,SpeedLight are the Products of Speed Style   56//这三个类对应UML图中的ProductA1ProductB1ProductC1类  57class SpeedEngine:public Engine  58{  59public :  60    SpeedEngine()  61    {  62        coutSpeed Engine Createendl;  63    }  64    void doSomething(){    }  65};  66  67class SpeedDoor:public Door  68{  69public :  70    SpeedDoor()  71    {  72        coutSpeed Door Createendl;  73    }  74    void doSomething(){    }  75};  76  77class SpeedLight:public Light  78{  79public :  80    SpeedLight()  81    {  82        coutSpeed Light Createendl;  83    }  84    void doSomething(){    }  85};  86  87//classicEngine,classicDoor,classicLight are the products of Classic style  88//这三个类对应UML图中的ProductA2ProductB2ProductC2类  89class ClassicEngine:public Engine  90{  91public :  92    ClassicEngine()  93    {  94        coutClassic Engine Createendl;  95    }  96    void doSomething(){    }  97};  98  99class ClassicDoor:public Door 100{ 101public : 102    ClassicDoor() 103    { 104        coutClassic Door Createendl; 105    } 106    void doSomething(){    } 107}; 108 109class ClassicLight:public Light 110{ 111public : 112    ClassicLight() 113    { 114        coutClassic Light Createendl; 115    } 116    void doSomething(){    } 117}; 118 119//Factory for Speed Cars 120//对应UML图中的ConcreteFactory1类 121class SpeedFactory:public AbstractFactory 122{ 123public: 124    SpeedFactory() 125    { 126        coutSpeedFactory Createendl; 127    } 128    virtual Engine* CreateEngine() 129    { 130        return new SpeedEngine(); 131    } 132    virtual Door* CreateDoor()  133    { 134        return new SpeedDoor(); 135    } 136    virtual Light* CreateLight() 137    { 138        return new SpeedLight(); 139    } 140}; 141 142//Factory for classic Cars 143//对应UML图中的ConcreteFactory2类 144class ClassicFactory:public AbstractFactory 145{ 146public: 147    ClassicFactory() 148    { 149        coutClassicFactory Createendl; 150    } 151    virtual Engine* CreateEngine() 152    { 153        return new ClassicEngine(); 154    } 155    virtual Door* CreateDoor()  156    { 157        return new ClassicDoor(); 158    } 159    virtual Light* CreateLight() 160    { 161        return new ClassicLight(); 162    } 163}; 164 165//Client Code ---- use the Abstract Factory  Abstract Product to create the car 166//this is never changed 167class CarManager 168{ 169protected: 170    AbstractFactory *abstractFactory; 171public: 172    //创造Car 173    void createCar(AbstractFactory *abstractFactory) 174    { 175        abstractFactory-CreateEngine(); 176        abstractFactory-CreateDoor(); 177        abstractFactory-CreateLight(); 178    } 179    //其他的操作 180    void run(){} 181}; 182 183int _tmain(int argc, _TCHAR* argv[]) 184{ 185    CarManager *carManager  new CarManager(); 186    //创建Classic风格的汽车 187    carManager-createCar(new ClassicFactory()); 188 189    return 0; 190}
http://www.zqtcl.cn/news/946633/

相关文章:

  • 大连哪里有手机自适应网站建设网站开发层次
  • 网站首页的浮窗怎么做美食网站程序
  • 淮北网站建设建设银行福州分行招聘网站
  • c 网站开发 pdf济南集团网站建设报价
  • 做网站找哪家公司好中国网络优化推广
  • 创建网站目录结构应遵循的方法dz旅游网站模板
  • 我看别人做系统就直接网站下载软件外贸物流流程
  • 手机微信网站南县网站定制
  • 做字幕网站重庆seo代理价格
  • 长春公司做网站找哪个公司好英文网站google推广
  • 潍坊网站建设方案推广官方网站如何建设
  • 设计网站的公司名称苏州建设人才网官网
  • 河南网站推广优化公司wordpress搭建vip下载站
  • 做网站拉客户有效吗网络宣传渠道
  • 制作深圳网站建设四川广安网站建设
  • 网站服务器服务商wordpress特效主题
  • 大型大型网站制作wordpress产品相册
  • 古董做推广哪个网站好租空间开网站
  • 巴中网站建设开发公司网站上传在空间哪里
  • 哈尔滨网站建设赚钱么宁波大型网站制作
  • 自助网站搭建群晖搭建的wordpress外网访问
  • 社区网站建设申请报告WordPress评论通知邮箱
  • 佛山网站建设技术托管建设网站容易吗
  • 网站开发的层级结构iis6.0如何做网站301
  • 做旅游那些网站好个人博客怎么做
  • 中国最好网站建设公司网站前台做好之后再怎么做
  • 焦作整站优化app开发报价单及方案
  • 网站开发合同验收怎样建立网站 优帮云
  • 池州哪家做网站wordpress方小程序主题
  • 免费建设网站入驻七牛云存储wordpress