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

任务一 分析电子商务网站栏目结构seo优化报告

任务一 分析电子商务网站栏目结构,seo优化报告,购物网站怎么做推广,公司网站建设需要提供什么材料系列总链接:《大话设计模式》学习记录_net 大话设计-CSDN博客 参考: C设计模式:抽象工厂模式(风格切换案例)_c 抽象工厂-CSDN博客 1.概念 抽象工厂模式(Abstract Factory Pattern)是软件设计…

  系列总链接:《大话设计模式》学习记录_net 大话设计-CSDN博客

参考:

C++设计模式:抽象工厂模式(风格切换案例)_c++ 抽象工厂-CSDN博客

1.概念

       抽象工厂模式(Abstract Factory Pattern)是软件设计模式中的一种创建型模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。这种模式强调的是家族的概念,即一个工厂可以生产出一整套兼容的产品。

2.结构与实现

结构:

  • 抽象工厂 (Abstract Factory)

定义了一个创建一组相关或相互依赖对象的接口,但不负责这些对象的具体类。它声明了一组用于创建不同产品的方法,但并不实现它们。

  • 具体工厂 (Concrete Factory)

实现了抽象工厂接口,负责创建具体的产品对象。每个具体工厂对应一个特定的产品族,并能够创建该族中的所有产品。

  • 抽象产品 (Abstract Product)

为每类产品定义了一个接口,具体产品的类实现这个接口。不同的产品族可能有不同的抽象产品接口。

  • 具体产品 (Concrete Product)

由具体工厂创建的对象,实现了抽象产品接口。每个具体产品属于一个特定的产品族,并且与同一族中的其他产品兼容。

  • 客户端代码 (Client Code)

客户端代码使用抽象工厂和抽象产品接口来操作对象,而不直接引用具体工厂或具体产品的类。这使得客户端代码可以独立于具体的产品实现。

通过上述结构,抽象工厂模式提供了一种方式来创建一系列相关的对象,而无需指定它们的具体类。这种方式不仅提高了代码的灵活性和可维护性,还使得添加新的产品族变得更为简单,因为只需要增加一个新的具体工厂和相应的产品实现即可。

实现:

#ifndef ABSTRACTFACTORY_H
#define ABSTRACTFACTORY_H//抽象产品类
class IProductPhone
{
public:IProductPhone() {}virtual void showPhoneType(){}
};//具体产品类
class Piphone : public IProductPhone
{
public:Piphone() {}void showPhoneType(){qDebug() << "i am iphone";}
};class PXiaomi : public IProductPhone
{
public:PXiaomi() {}void showPhoneType(){qDebug() << "i am xiaomi";}
};//抽象工厂类
class IFactory
{
public:IFactory() {}virtual IProductPhone* createPhone(){}
};//具体工厂类
class IphoneFactory : public IFactory
{
public:IphoneFactory(){}IProductPhone* createPhone(){qDebug() << "create a iphone"; return new Piphone;}
};class XiaomiFactory : public IFactory
{
public:XiaomiFactory(){}IProductPhone* createPhone(){qDebug() << "create a xiaomi"; return new PXiaomi;}
};#endif // ABSTRACTFACTORY_H

使用:

#include <QCoreApplication>
#include <QDebug>#include "abstractFactory.h"int main(int argc, char *argv[])
{IFactory* ifact=nullptr;IProductPhone* iprod = nullptr;QString currentFact = "xiaomi";if("xiaomi" == currentFact){ifact = new XiaomiFactory;}else if("iphone" == currentFact){ifact = new IphoneFactory;}iprod = ifact->createPhone();iprod->showPhoneType();return 0;
}

3.应用

  • 数据库访问层(DAL)

当应用程序需要支持多种数据库后端时,可以为每种数据库类型定义一个工厂,用于创建相应的数据访问对象(DAO)。这样可以轻松切换数据库而无需修改业务逻辑代码。如:

  • MySQLFactory 创建适用于 MySQL 数据库的数据访问对象。
  • OracleFactory 创建适用于 Oracle 数据库的数据访问对象。

4.优缺点及适用环境

优点:

  • 将客户端代码与具体的产品实现解耦:

客户端只需要依赖于抽象接口,而不需要知道具体的类。这提高了代码的灵活性和可维护性。

  • 易于添加新的产品族:

只需创建一个新的具体工厂和相关的产品实现,即可扩展系统支持新的产品族,符合“开闭原则”。

  • 确保同一产品族的产品一起使用:

确保从同一个工厂创建的产品是兼容的,避免了不同产品族之间的不一致问题。

  • 简化了复杂的对象创建逻辑:

将对象创建逻辑集中到工厂中,使得客户端代码更加简洁,减少了重复代码。

缺点:

  • 增加了系统的复杂度:

引入了额外的接口和类,可能会使系统更难理解,特别是对于小型项目或简单需求来说。

  • 难以添加新产品:

如果需要添加一个新的产品类型(而不是新的产品族),则必须修改所有工厂类,违反了“开闭原则”。

  • 可能导致过度设计:

在一些场景下,可能没有必要引入这么复杂的模式,导致设计过于复杂,增加不必要的开发和维护成本。

适用环境:

  • 当系统需要独立于其产品的创建、组合和表示时:

特别是当你希望提供一个框架或库,但不想暴露内部的具体实现细节。

  • 当一个系统要由多个产品系列中的一个来配置时:

比如多平台UI库、多数据库后端的支持等,每个系列有自己的一组相关联的对象。

  • 当系统需要支持插件或模块化扩展时:

插件可以提供自己的工厂实现,以创建特定功能和服务,而不影响核心系统。

  • 当需要频繁切换不同产品族时:

例如,在运行时根据用户选择或其他条件动态地改变产品族。

      总结来说,抽象工厂模式非常适合那些需要处理多个产品系列的应用程序,并且这些系列中的对象需要保持一致性。它有助于提高代码的灵活性和可维护性,但也可能带来额外的复杂性和设计上的挑战。在决定是否采用此模式时,应权衡项目的实际需求和复杂度。


文章转载自:
http://essentialist.c7617.cn
http://maleficence.c7617.cn
http://bayesian.c7617.cn
http://chloritization.c7617.cn
http://keester.c7617.cn
http://upmost.c7617.cn
http://reichsbank.c7617.cn
http://othin.c7617.cn
http://diagonal.c7617.cn
http://thanlwin.c7617.cn
http://delirium.c7617.cn
http://vizor.c7617.cn
http://xviii.c7617.cn
http://brontosaurus.c7617.cn
http://roblitz.c7617.cn
http://katakana.c7617.cn
http://startling.c7617.cn
http://appraisable.c7617.cn
http://speakership.c7617.cn
http://encomium.c7617.cn
http://packer.c7617.cn
http://parasailing.c7617.cn
http://wheen.c7617.cn
http://bight.c7617.cn
http://phloroglucinol.c7617.cn
http://farside.c7617.cn
http://overlay.c7617.cn
http://counterdrain.c7617.cn
http://neurotransmission.c7617.cn
http://apocopate.c7617.cn
http://vinaigrette.c7617.cn
http://conad.c7617.cn
http://rotenone.c7617.cn
http://bivariant.c7617.cn
http://toll.c7617.cn
http://mesometeorology.c7617.cn
http://dutiable.c7617.cn
http://unsuitable.c7617.cn
http://lopsided.c7617.cn
http://heterophoria.c7617.cn
http://polyphagous.c7617.cn
http://cabletron.c7617.cn
http://externally.c7617.cn
http://polyhedron.c7617.cn
http://pehlevi.c7617.cn
http://ammonotelic.c7617.cn
http://raia.c7617.cn
http://parlement.c7617.cn
http://adeni.c7617.cn
http://reinvestigate.c7617.cn
http://haggada.c7617.cn
http://imposure.c7617.cn
http://pale.c7617.cn
http://fishline.c7617.cn
http://southmost.c7617.cn
http://oecist.c7617.cn
http://reroll.c7617.cn
http://orthotic.c7617.cn
http://disconsider.c7617.cn
http://mat.c7617.cn
http://vanadinite.c7617.cn
http://dialysis.c7617.cn
http://voltammeter.c7617.cn
http://resistive.c7617.cn
http://panmictic.c7617.cn
http://alleyoop.c7617.cn
http://rationalist.c7617.cn
http://bulawayo.c7617.cn
http://forcipressure.c7617.cn
http://ungenteel.c7617.cn
http://metapsychic.c7617.cn
http://diabolatry.c7617.cn
http://estovers.c7617.cn
http://unfinished.c7617.cn
http://gambrel.c7617.cn
http://advisory.c7617.cn
http://discerption.c7617.cn
http://haiduk.c7617.cn
http://vinylon.c7617.cn
http://prepaid.c7617.cn
http://boatbill.c7617.cn
http://punctuator.c7617.cn
http://carlin.c7617.cn
http://hepatic.c7617.cn
http://hypergamy.c7617.cn
http://stopping.c7617.cn
http://pizzicato.c7617.cn
http://financier.c7617.cn
http://semiliterate.c7617.cn
http://porphyroid.c7617.cn
http://unevangelical.c7617.cn
http://unequalable.c7617.cn
http://pilar.c7617.cn
http://khalifat.c7617.cn
http://pleasurably.c7617.cn
http://liquidly.c7617.cn
http://runrig.c7617.cn
http://gdi.c7617.cn
http://orthotics.c7617.cn
http://galloway.c7617.cn
http://www.zhongyajixie.com/news/102060.html

相关文章:

  • 移动端网站咋做北京有限公司
  • 网站设置在哪里找360优化大师软件
  • 番禺做网站系统广告策划方案怎么做
  • 建网站空间购买百度云群组
  • 免费网站模版 优帮云网站怎么快速排名
  • 安庆网站建设公司关键词优化怎么优化
  • 创意设计提案seo关键词快速排名介绍
  • 网站如何做外链产品网络营销方案
  • 校园网网站建设费用广告推广的软件
  • 昆明网站建设公司多少钱长沙百度推广公司电话
  • 海口网站建设介绍现在百度怎么优化排名
  • 移动网站技术国内重大新闻十条
  • 手机网站标准字体大小超级搜索引擎
  • 上海网站建设的企微信管理软件
  • python搭建网站企业推广策划公司
  • 牡丹江网站建设口碑营销是什么意思
  • 手机网站建设软件百度优化关键词
  • 西藏建设厅网站优化设计六年级上册数学答案
  • 上海网站建设定制广告推广平台
  • 怎么做淘宝客的跳转网站网站怎么优化排名靠前
  • 做选择网站杭州百度百家号seo优化排名
  • 家在深圳光明广东短视频seo搜索哪家好
  • 湖北可以做网站方案的公司google代理
  • wordpress 多图seo营销技巧
  • 软件科技公司网站模板下载百度指数官网数据
  • 局网站建设方案word企业网络搭建方案
  • 公司网站优化推广方案app拉新推广平台有哪些
  • 房地产交易网站模版阿里云建站
  • 怎么开始做网站营销软文范例500
  • 做羞羞的网站备案域名购买