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

广东专业网站建设wordpress会员发布文章

广东专业网站建设,wordpress会员发布文章,公司的官方网站怎么做,交通建设工程质量监督局网站文章目录 简单工厂模式和策略模式的异同相同点#xff1a;不同点#xff1a;目的#xff1a;结构#xff1a; C 代码示例简单工厂模式示例#xff08;以创建图形对象为例#xff09;策略模式示例#xff08;以计算价格折扣策略为例#xff09;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.w-s-a.com/news/272814/

相关文章:

  • 网站群建设费用科技通信网站模板下载
  • 网站开发的流程是怎样的自己做自媒体在哪个网站比较好
  • 网站的html代码在哪网页线上开发制作
  • 免费商用自媒体图片网站做网站好的公司有哪些
  • 阿雷网站建设公司中国建筑考试网官网首页
  • 厦门网站制作网页无法跳转到建设银行网站
  • 怎么建设自己网站简述网页布局的几种方法
  • 软文营销文案100篇如何优化搜索引擎的搜索功能
  • 做网站创意杭州家具网站建设方案
  • 福州seo网站推广优化乐清建网站
  • 莆田cms建站模板简述网站设计流程
  • 班级网站建设组织机构建设注册中心网站首页
  • 即墨网站建设地址怎么在文档中做网站一点就开
  • 做网站联系方式互联网行业分析
  • 杭州网站建设索q479185700高淳网站建设
  • 有什么做任务拿钱的网站精准的搜索引擎优化
  • 洛阳有建社网站的吗电力建设工程质量监督总网站
  • 网站404报错热水器网站建设 中企动力
  • 网站降权恢复淘宝 网站建设
  • 安州区建设局网站台州优秀关键词优化
  • 网站假设教程湖南微信管理系统
  • 网站备案属于公司哪一块哪个网站是专门做封面素材
  • 广州个人做网站内江建设局网站
  • 网站开发 360百科大连哪里有手机自适应网站建设维护
  • 如何查网站pv网站功防教程
  • 建设银行网站信息补充营销推广的作用
  • 网站见建设seo外链自动群发工具
  • 在境外做网站网站团购网站seo
  • 进网站后台加什么360推广 网站建设
  • 网站备案号码专做网站漏扫的工具