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

电商网站建设怎么样wordpress默认注册框

电商网站建设怎么样,wordpress默认注册框,网站建设制作流程,濮阳网络化1、原型模式提出 在软件功能设计中,经常面临着“某些结构复杂的对象”的创建工作,且创建的对象想拥有其他对象在某一刻的状态,则可以使用原型模型。原型模型是通过拷贝构造函数来创建对象,并且该对象拥有其他对象在某一刻的状态。…

1、原型模式提出

在软件功能设计中,经常面临着“某些结构复杂的对象”的创建工作,且创建的对象想拥有其他对象在某一刻的状态,则可以使用原型模型。原型模型是通过拷贝构造函数来创建对象,并且该对象拥有其他对象在某一刻的状态。

2、需求描述

设计产品A,B,这个产品有重量和单价,输出产品的价格。

3、原型模式代码实现

#include <iostream>
namespace factModel{
class AbsProduct{
public:AbsProduct(int kg,int price):m_kg(kg),m_price(price){};virtual void salePrice()=0;virtual AbsProduct* clone()=0;virtual ~AbsProduct()=default;
protected:int m_kg;int m_price;
};
class ProductA:public AbsProduct
{
public:ProductA(int kg,int price):AbsProduct(kg,price){};ProductA(const ProductA& org):AbsProduct(org.m_kg,org.m_price){this->m_kg = org.m_kg;this->m_price = org.m_kg;};virtual AbsProduct* clone() override{return new ProductA(this->m_kg,this->m_price);};virtual void salePrice()override{std::cout << "ProductA Info "<< m_kg << "kg, price " << m_price << ", sale " << m_kg * m_price<<"."<< std::endl;};~ProductA()=default;
};class ProductB:public AbsProduct
{
public:ProductB(int kg,int price):AbsProduct(kg,price){};ProductB(const ProductB& org):AbsProduct(org.m_kg,org.m_price){this->m_kg = org.m_kg;this->m_price = org.m_kg;};virtual AbsProduct* clone()override{return new ProductB(this->m_kg,this->m_price);};virtual void salePrice()override{std::cout << "ProductB Info "<< m_kg << "kg, price " << m_price << ", sale " << m_kg * m_price<<"."<< std::endl;};~ProductB()=default;
};//有构造参数时,是需要的具体工厂的,因为设计模式一般将new隔离在其他的文件中。(否则使用时就需要AbsProduct *pA = new ProductA(2,8);)
class AbsFact{
public:AbsFact()=default;virtual ~AbsFact()=default;virtual AbsProduct* createProduct()=0;
};
class FactA:public AbsFact
{
public:FactA()=default;~FactA()=default;virtual AbsProduct* createProduct()override{AbsProduct* tmp = new ProductA(2,8);return tmp;}
};class Use
{
public:AbsProduct* product;void setFactory(AbsProduct* pf){product = pf;};    //或者在构造函数中添加初始化字段值void saleProducts(){product->salePrice();}
};
}int main()
{//创建方式1:通过工厂方法模式隔离ProductA的newfactModel::AbsFact* pFactA = new factModel::FactA();factModel::AbsProduct *pPdtA = pFactA->createProduct();factModel::AbsProduct* pCloneA = pPdtA->clone();factModel::Use objA;objA.setFactory(pCloneA);objA.saleProducts();//创建方式2:直接使用new ProductB的方式创建对象factModel::AbsProduct *pPdtB = new factModel::ProductB(3,12);factModel::AbsProduct* pCloneB = pPdtB->clone();factModel::Use objB;objB.setFactory(pCloneB);objB.saleProducts();delete pFactA;pFactA = nullptr;delete pPdtA;pPdtA = nullptr;delete pCloneA;pCloneA = nullptr;delete pPdtB;pPdtB = nullptr;delete pCloneB;pCloneB = nullptr;return 0;
}

运行结果如下:

 上面代码main函数中的创建方式根据实际情况选择,如果想隔离new,则使用方式1。原型模式的优点是将创建对象(该新创建的对象具有其他对象的状态,但与其他对象的地址区域是相互独立的)变得比较简洁。

http://www.yayakq.cn/news/59352/

相关文章:

  • asp大型网站开发2020新闻热点事件素材
  • 一个服务器可以建几个网站企业网站设计期末考试
  • 网站开发毕业设计任务书怎么写淘宝电商设计
  • 什么叫做响应式网站网站界面设计形考任务
  • 建设网站建设网站重大新闻事件
  • 免费网站备哪里有好看的网站
  • 做贺卡 网站网站推广的四个阶段包括
  • 永年网站制作网站应当实现那些功能 流程如何设计
  • 代码共享网站微信公众 wordpress
  • 凤岗镇做网站福安做网站
  • 哪个网站专门做二手的济宁网站建设方面
  • 校园网站html模板动漫设计自考大专
  • 网站开发风险协议seo专业培训学费多少钱
  • 外贸建站推广大庆建网站
  • 注册网站卖钱最多的人建筑咨询
  • 建设银行网站下载中心在哪定制app网站
  • 购买网站建站怎么在58上做公司网站
  • 360建站官网百度总部电话
  • html5手机网站 源码网站怎么排名
  • 分类目录网站怎么做推广产品的文案
  • 南京公司网站建设自己开发游戏需要学什么
  • 农村电子商务网站建设官网站建设的步骤过程
  • 永嘉营销网站建设网站设计要点
  • 怎样做网站排名优化宁波市网站集约化建设通知
  • 建设部网站办事大厅栏目网页设计实训报告1500字
  • 中国城乡和住房建设部网站电销系统线路
  • 福建漳州东山规划建设局网站网页设计教程完整
  • 简约个人网站欣赏网站建设成本 网站空间
  • 专业的移动客户端网站建设网站开发自荐信
  • 绘画网站建设哪些域名适合营销型网站