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

一个网站突然打不开百度竞价代理公司

一个网站突然打不开,百度竞价代理公司,扁平化企业网源码win8风格精简化源码asp带后台企业网站,淘宝上的网站建设能信吗文章目录 简单工厂模式和策略模式的异同相同点:不同点:目的:结构: C 代码示例简单工厂模式示例(以创建图形对象为例)策略模式示例(以计算价格折扣策略为例)UML区别 简单工厂模式和策…

文章目录

  • 简单工厂模式和策略模式的异同
    • 相同点:
    • 不同点:
      • 目的:
      • 结构:
  • C++ 代码示例
    • 简单工厂模式示例(以创建图形对象为例)
    • 策略模式示例(以计算价格折扣策略为例)
      • UML区别

简单工厂模式和策略模式的异同

相同点:

都涉及到对象的创建和使用。在简单工厂模式中,工厂类负责创建对象;在策略模式中,虽然重点是算法的封装和切换,但具体策略类也是对象,需要被创建。
都有助于提高代码的可维护性和可扩展性。简单工厂模式将对象创建逻辑集中在工厂类中,方便添加新的产品对象;策略模式将不同的算法封装在具体策略类中,便于添加新的策略。

不同点:

目的:

简单工厂模式主要用于创建对象,它将对象的创建和使用分离。例如,在一个游戏道具系统中,简单工厂模式可以用来创建不同类型的道具,如武器、防具等。
策略模式侧重于在运行时切换算法或行为。例如,在游戏角色的攻击行为中,可以有不同的攻击策略,如近战攻击、远程攻击等,根据游戏场景和角色状态来切换。

结构:

简单工厂模式通常有一个工厂类,包含一个创建对象的方法,根据传入的参数返回不同类型的产品对象。
策略模式包含一个策略接口、多个具体策略类和一个上下文类。策略接口定义了算法方法,具体策略类实现这些方法,上下文类持有策略接口引用,用于调用具体策略类的算法。

C++ 代码示例

简单工厂模式示例(以创建图形对象为例)

// 抽象图形类
class Shape{
public:virtual void draw() = 0;
};// 具体图形类 - 圆形
class Circle : public Shape 
{
public:void draw() override{std::cout << "Drawing a circle." << std::endl;}
};// 具体图形类 - 矩形
class Rectangle : public Shape
{
public:void draw() override {std::cout << "Drawing a rectangle." << std::endl;}
};// 简单工厂类
class ShapeFactory 
{
public:static Shape* createShape(const std::string& shapeType){if (shapeType == "circle") {return new Circle();}else if (shapeType == "rectangle") {return new Rectangle();}return nullptr;}
};int main() 
{Shape* circle = ShapeFactory::createShape("circle");circle->draw();Shape* rectangle = ShapeFactory::createShape("rectangle");rectangle->draw();delete circle;delete rectangle;return 0;
}

策略模式示例(以计算价格折扣策略为例)

// 折扣策略接口
class DiscountStrategy
{
public:virtual double calculateDiscount(double price) = 0;
};// 具体折扣策略类 - 满减折扣
class FullReductionDiscount : public DiscountStrategy 
{
public:double calculateDiscount(double price) override {if (price >= 100) {return 20;}return 0;}
};// 具体折扣策略类 - 会员折扣
class MemberDiscount : public DiscountStrategy 
{
public:double calculateDiscount(double price) override {return price * 0.1;}
};// 上下文类
class PriceContext 
{
private:DiscountStrategy* discountStrategy;
public:PriceContext(DiscountStrategy* strategy) : discountStrategy(strategy) {}double calculateFinalPrice(double price) {double discount = discountStrategy->calculateDiscount(price);return price - discount;}
};int main() 
{FullReductionDiscount fullReduction;PriceContext fullReductionContext(&fullReduction);double price1 = fullReductionContext.calculateFinalPrice(120);std::cout << "Final price after full - reduction discount: " << price1 << std::endl;MemberDiscount memberDiscount;PriceContext memberDiscountContext(&memberDiscount);double price2 = memberDiscountContext.calculateFinalPrice(80);std::cout << "Final price after member discount: " << price2 << std::endl;return 0;
}

在上述代码中:
简单工厂模式的代码通过ShapeFactory创建不同类型的Shape对象(Circle和Rectangle)。工厂类的createShape方法根据传入的字符串参数决定创建哪种具体的图形对象。
策略模式的代码定义了DiscountStrategy接口,有FullReductionDiscount和MemberDiscount两个具体策略类实现了不同的折扣计算方法。PriceContext作为上下文类,根据传入的折扣策略对象来计算最终价格,通过这种方式可以在运行时灵活切换折扣策略。

UML区别

在这里插入图片描述
在这里插入图片描述

http://www.dinnco.com/news/32761.html

相关文章:

  • 网站内容创造色盲测试图免费测试
  • ps做网站字号大小新闻最近新闻10条
  • 现在的网站推广是怎么做的关键字优化
  • 给境外合法网站做数据网络营销与策划试题及答案
  • 祁阳做网站优化设计五年级下册语文答案
  • 来广营做网站公司可以建网站的网络公司有哪些
  • thinkphp 做网站如何怎样在百度答题赚钱
  • 帮人做诈骗网站获利35万退赃部分企业培训十大热门课程
  • 正规营销型网站建设下载一个百度导航
  • 微信小程序免费开店详细步骤小程序排名优化
  • wordpress改中文版seo项目培训
  • 做一个舌尖上的中国网站怎么做湖南网站设计
  • php网站功能海口seo网络公司
  • 网站建设报价书seo推广代理
  • org后缀做网站行怎么做起泡胶
  • 成都定制网站建设深圳seo公司
  • 传媒网站建设seo免费推广软件
  • 拓者设计吧免费注册廊坊快速排名优化
  • 开发一个完整的动态网站宁波seo推广咨询
  • c#如何做公司网站推广平台收费标准
  • 网站开发项目方案万网官网入口
  • 宁夏建设局网站关键词seo排名怎么做的
  • 沈阳网站建设工作室一诺网络推广公司
  • 乌鲁木齐做网站优化关键词搜索指数
  • 厦门网站建设价格深圳优化seo
  • 海南网站建设介绍软文广告范文
  • 做网站效果图总结百度智能建站平台
  • 曰本真人性做爰视频网站名字seo按照搜索引擎的
  • 网站建设中销售人员会问客户的问题seo是啥意思
  • 网站总体规划郑州网站推广公司电话