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

韩国教育网站模板网站建设费用摊销会计分录

韩国教育网站模板,网站建设费用摊销会计分录,昆明网站建设织梦,企业网站导航一般做多高系列总链接#xff1a;《大话设计模式》学习记录_net 大话设计-CSDN博客 参考#xff1a; C设计模式#xff1a;抽象工厂模式#xff08;风格切换案例#xff09;_c 抽象工厂-CSDN博客 1.概念 抽象工厂模式#xff08;Abstract Factory Pattern#xff09;是软件设计…  系列总链接《大话设计模式》学习记录_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.hint main(int argc, char *argv[]) {IFactory* ifactnullptr;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://www.hkea.cn/news/14520308/

相关文章:

  • flex做的网站wordpress启用旧的编辑器
  • google网站质量wordpress联系插件
  • 如何做自己的论坛网站成都品牌策划设计公司
  • 网站建设工作职责一个简单的html个人简历代码
  • 网站各个功能模块吕梁推广型网站开发
  • 关于网站设计的职业网站的类型和特色
  • 某个网站做拍卖预展的好处网站建站工具有哪些
  • 沈阳做平板网站7天学会自媒体短视频制作
  • 一般ppt模板都会发不到什么网站商品详情页图片
  • 新开传奇网站发布站网站开发 cms
  • 计算机网站建设论文wordpress章节添加章节
  • 惠州做网站 百度优化台州网站制作套餐
  • 小型电子商务网站规划建设方案织梦网站主页地址更改
  • 瀚钦科技网站建设公司查名网站
  • 怎么管理网站的内容wordpress文章图片alt
  • 同德县网站建设公司厦门百度广告
  • 一个域名可以做两个网站吗广西企业网站建设
  • 事业单位网站建设方案策划书广州住房公积金建设银行预约网站首页
  • 广告联盟怎么做优化建议
  • 微信与与网站建设网络营销推广活动
  • 小程序推广员好做吗企业关键词优化推荐
  • 广州市建设厅网站做用户名和密码网站页面
  • 初学者网站建设网站推广计划的内容
  • h5移动端网站开发学校网站建设团队
  • wordpress全站模板著名的网络营销案例
  • 广告公司网站建设淘宝客需要自己做网站吗
  • 黄页网站推广服务企业如何在网站做认证
  • 临沂做网站多少钱网站开发与应用论文百度文库
  • 潍坊住房和城乡建设厅网站电话做网站用了别人公司的图片可以吗
  • 智能家居网站开发网站维护网站建设