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

个人做哪方面网站themes for wordpress

个人做哪方面网站,themes for wordpress,一流的天津网站建设,本地编辑wordpress更多内容:XiaoJ的知识星球 目录 1.简单工厂模式1.1 简单工厂1.2 实现步骤1.3 实现代码1.4 优缺点 2.工厂模式2.1 工厂模式2.2 实现步骤2.3 实现代码2.4 优缺点 3.抽象工厂模式3.1 抽象工厂模式3.2 实现步骤3.3 实现代码3.4 优缺点 1.简单工厂模式 . 1.1 简单工厂 …

更多内容:XiaoJ的知识星球


目录

  • 1.简单工厂模式
    • 1.1 简单工厂
    • 1.2 实现步骤
    • 1.3 实现代码
    • 1.4 优缺点
  • 2.工厂模式
    • 2.1 工厂模式
    • 2.2 实现步骤
    • 2.3 实现代码
    • 2.4 优缺点
  • 3.抽象工厂模式
    • 3.1 抽象工厂模式
    • 3.2 实现步骤
    • 3.3 实现代码
    • 3.4 优缺点


1.简单工厂模式

.

1.1 简单工厂

简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式

通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

.

1.2 实现步骤

1.提供一个工厂类

  • 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。

2.提供一个抽象产品类

  • 简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。

3.提供一个具体产品类

  • 简单工厂模式所创建的具体实例对象

在这里插入图片描述

.

1.3 实现代码

#include <iostream>
#include <string>
using namespace std;
//产品抽象父类
class Operation 
{    public:double m_leftVlaue;double m_rightValue;virtual double GetResult() = 0;
};
//具体产品实现类
class AddOperation:public Operation
{double GetResult(){return m_leftVlaue + m_rightValue;}
};
class SubOperation :public Operation 
{double GetResult(){return m_leftVlaue - m_rightValue;}
};class MulOperation :public Operation
{double GetResult(){return m_leftVlaue * m_rightValue;}
};class DivOperation :public Operation
{double GetResult(){return m_leftVlaue / m_rightValue;}
};
//工厂类
class  OperatorFactory 
{
public:static  Operation* createOperation(char c) {switch (c) {case '+':return new AddOperation;break;case '-':return new SubOperation;break;case '*':return new MulOperation;break;case '/':return new DivOperation;break;}}
};
int main() 
{Operation* operation = OperatorFactory::createOperation('+');operation->m_leftVlaue = 1;operation->m_rightValue = 2;cout << operation->GetResult() << endl;return 0;
}

1.4 优缺点

优点

  • 帮助封装:实现组件封装,面向接口编程

  • 解耦合:客户端和具体实现类的解耦合

缺点

  • 可能增加客户端的复杂度

  • 不方便扩展子工厂

.


2.工厂模式

2.1 工厂模式

工厂方法模式,同样属于类的创建型模式,又被称为多态工厂模式 。

工厂方法模式的意义:

  • 定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。

  • 核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,

  • 这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工 厂角色的情况下引进新的产品

.

2.2 实现步骤

1.提供一个抽象工厂类 :所有具体工厂类的父类

2.提供与产品对应的工厂类:负责实例化产品对象

3.提供一个抽象产品类:所有产品的父类

4.提供一个或多个产品类:工厂方法模式所创建的具体实例对象
在这里插入图片描述
.

2.3 实现代码

#include <iostream>
using namespace std;
class AbstractProduct
{
public:virtual void makeProduct() = 0;
};class AbstractFactory 
{
public:virtual AbstractProduct* createProduct() = 0;
};class PlaneProduct :public AbstractProduct
{
public:void makeProduct() {cout << "造飞机....." << endl;}
};
class PlaneFactory :public AbstractFactory 
{
public:AbstractProduct* createProduct(){AbstractProduct* product = new PlaneProduct;return product;}
};
class RocketProduct :public AbstractProduct
{
public:void makeProduct(){cout << "造火箭...." << endl;}
};
class RocketFactory :public AbstractFactory 
{
public :AbstractProduct* createProduct(){AbstractProduct* product = new RocketProduct;return product;}
};int main() 
{//造飞机AbstractFactory* factory = new PlaneFactory;AbstractProduct* product = factory->createProduct();product->makeProduct();//造火箭factory = new RocketFactory;product = factory->createProduct();product->makeProduct();return 0;
}

.

2.4 优缺点

优点

  • 需求改变时改动最小

  • 具体的创建实例过程与客户端分离

缺点:

  • 新增功能时,工程量稍大

.


3.抽象工厂模式

3.1 抽象工厂模式

抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的。

抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象。

.

3.2 实现步骤

1.提供一个抽象工厂类:声明一组创建一族产品的工厂方法

2.提供一个具体工厂类:实现了在抽象工厂创建产品的工厂方法

3.提供一个抽象产品类:抽象产品中声明了产品具有的业务方法

4.提供一个具体产品类:实现抽象产品接口中声明的业务方法
在这里插入图片描述

.

3.3 实现代码

#include <iostream>
using namespace std;
//抽象产品
class Product 
{
public:virtual void show() = 0;
};
//抽象产品族1
class KeyBoard :public Product{};
//罗技键盘
class LogiKeyBoard :public KeyBoard
{void show(){cout << "罗技键盘......" << endl;}
};
//雷蛇键盘
class RazerKeyBoard :public KeyBoard
{void show() {cout << "雷蛇键盘......" << endl;}
};
//抽象产品族2
class Mouse :public Product {};
//罗技鼠标
class LogiMouse :public Mouse
{void show() {cout << "罗技鼠标......" << endl;}
};
class RazerMouse :public Mouse 
{void show() {cout << "雷蛇鼠标......" << endl;}
};
//抽象工厂
class Factory
{
public:virtual KeyBoard* createKeyBoard() = 0;virtual Mouse* createMouse() = 0;
};
class LogiFactory :public Factory
{KeyBoard* createKeyBoard(){return new LogiKeyBoard;}Mouse* createMouse() {return new LogiMouse;}
};
class RazerFactory :public Factory 
{KeyBoard* createKeyBoard() {return new RazerKeyBoard;}Mouse* createMouse() {return new RazerMouse;}
};int main() 
{Factory* factory = new LogiFactory;KeyBoard* keyBoard = factory->createKeyBoard();Mouse* mouse = factory->createMouse();keyBoard->show();mouse->show();delete factory;delete keyBoard;delete mouse;factory = new RazerFactory;keyBoard = factory->createKeyBoard();mouse = factory->createMouse();keyBoard->show();mouse->show();delete factory;delete keyBoard;delete mouse;factory = NULL;keyBoard = NULL;mouse = NULL;return 0;
}

.

3.4 优缺点

优点

  • 抽象工厂封装了变化,封装了对象创建的具体细节

  • 增加新的产品族很方便,无须修改已有系统

  • 针对接口进行编程而不是针对具体进行编程

缺点:

  • 增加新的产品等级结构需对原系统做较大修改(违背开放封闭)

.


声明:资源可能存在第三方来源,若有侵权请联系删除!


文章转载自:

http://7KgDMvW0.rcfwr.cn
http://5Ed3JDz7.rcfwr.cn
http://Mye7Tp8k.rcfwr.cn
http://PvA0ubM4.rcfwr.cn
http://knv3vh7Q.rcfwr.cn
http://ZzefXsku.rcfwr.cn
http://MOdXu3Ks.rcfwr.cn
http://n6lIHEi1.rcfwr.cn
http://QIKnShif.rcfwr.cn
http://iEGcVdbI.rcfwr.cn
http://3kllnYQG.rcfwr.cn
http://AcmzHYxw.rcfwr.cn
http://7GuZGZKK.rcfwr.cn
http://t8sJW9df.rcfwr.cn
http://MxYQKdOl.rcfwr.cn
http://QK7PFtS7.rcfwr.cn
http://GdDMqelP.rcfwr.cn
http://BRUQloec.rcfwr.cn
http://twB0dk5v.rcfwr.cn
http://DWQONcmc.rcfwr.cn
http://BHLLTUwb.rcfwr.cn
http://bW2fq1gQ.rcfwr.cn
http://Ts6vLy7t.rcfwr.cn
http://Blxdx3GK.rcfwr.cn
http://nxkZjy4n.rcfwr.cn
http://PZ0Q3bGa.rcfwr.cn
http://OMA6I43M.rcfwr.cn
http://ZjfDDTwM.rcfwr.cn
http://2Qmw1jSU.rcfwr.cn
http://mb1NqNk5.rcfwr.cn
http://www.dtcms.com/wzjs/751027.html

相关文章:

  • 瑞安营销网站建设上海做网站公司做网站的公司
  • 做文献的ppt模板下载网站seo计费系统开发
  • 大学生心理咨询网站建设论文如何新建网页
  • 医疗器械网站怎么做海淀中小企业网站开发
  • 公司网站怎样添加和修改内容网站备案号是什么意思
  • 南通科技网站建设wordpress ldap登陆
  • 专业网站制作团队aspx网站开发 案例
  • 国外可以做非法网站吗做公司网站有什么需要注意的
  • 网站返回首页怎么做的好看地方门户网站系统建设方案
  • 做网站保证效果中国建设网站官网
  • 上海有哪些优化网站推广公司网站开发定制方案
  • 找人做网站 多少钱百度指数需求图谱
  • 做网站什么空间比较好莱芜信誉好的网络推广公司
  • 智慧软文网站网站做多个页面
  • 财务公司网站源码设计一套vi的报价
  • 手机网站诊断分析院校门户网站建设方案
  • 济南php网站开发好的专业网站建设公司
  • 五金配件东莞网站建设技术支持阿里云网站建设 部署与发布笔记
  • 做网站销售电销好做吗中国建设银行网站江苏分行
  • 泰安网站优化公司外贸拓客软件有用吗
  • 萧山网站建设那家好自己做的视频可以传别的网站去吗
  • 您有新信息 建设招标网官方网站siteground建站教程
  • 网站前台设计模板华亮建设集团股份有限公司网站
  • 中国纪检监察报单国平海外广告优化师
  • 成功的网站建设做汉字的教育网站
  • 江西做网站公司怎么做网页漂亮
  • 福田做棋牌网站建设多少钱dede游戏网站模板
  • 湖北省建设人力资源网站首页昆明网站建设哪个公司好
  • 老网站绑定新网站如何做?酒泉手机网站建设
  • 机械厂网站模板用html制作个人网站源代码