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

福田做商城网站建设找哪家公司比较安全棋牌网站哪里做

福田做商城网站建设找哪家公司比较安全,棋牌网站哪里做,新手网页制作,网站集群系统建设设计模式最大的作用就是在变化和稳定中间寻找隔离点#xff0c;然后分离它们#xff0c;从而管理变化。将变化像小兔子一样关到笼子里#xff0c;让它在笼子里随便跳#xff0c;而不至于跳出来把你整个房间给污染掉。 设计思想 定义一个用于创建对象的接口#xff0c;让子… 设计模式最大的作用就是在变化和稳定中间寻找隔离点然后分离它们从而管理变化。将变化像小兔子一样关到笼子里让它在笼子里随便跳而不至于跳出来把你整个房间给污染掉。 设计思想 定义一个用于创建对象的接口让子类决定实例化哪一个类。Factory Method 使得一个类的实例化延迟到子类。目的解耦手段虚函数 动机 在软件系统中经常面临着创建对象的工作由于需求的变化需要创建的对象的具体类型经常变化。 如何应对这种变化如何绕过常规的对象创建方法new),提供一种“封装机制”来避免客户程序和这种“具体对象创建工作”的紧耦合 Factory Method模式用于隔离类对象的使用者和具体类型之间的耦合关系。面对一个经常变化的具体类型紧耦合关系会导致软件的脆弱。 Factory Method模式通过面向对象的收发将所要创建的具体对象工作延迟到子类从而实现一种扩展而非更改的策略较好地解决了这种耦合关系。 Factory Method 模式解决“单个对象”的需求变化。缺点在于创建方法、参数需要相同。 业务场景 在 MainForm 中需要对文件进行分解操作但是分解的文件可能是二进制文件文本文件图片文件等等这时候我们需要在 MainForm 创建对应的对象然后调用分解函数。 一个非常直观的思路是 class ISplitter { public:virtual void split() 0;virtual ~ISplitter() {} };class BinarySplitter : public ISplitter { //实现分解二进制文件 };class TxtSplitter : public ISplitter { //实现分解TXT文件 };class PictureSplitter : public ISplitter { //实现分解图片文件 };class VideoSplitter : public ISplitter {//实现分解视频文件 };class MainForm : public Form { public:void Button1_Click() {ISplitter* splitter new BinarySplitter(); splitter-split();} };这是很自然的一种写法问题的关键在于这一句代码 ISplitter* splitter new BinarySplitter(); 在等号的左边是一个抽象类属于抽象依赖编译时依赖但是等号的右边是一个具体类属于细节依赖。根据依赖倒置原则抽象不应该依赖于细节而这种写法很明显违背了这种原则。 下面看看使用工厂模式应该怎么去实现 代码案例 编写专门的工厂类再编写具体的工厂子类。在具体操作的 MainForm 中通过构造把子类对象传入。用多态的方式避免了 MainForm 中的固定。 // 抽象类 class ISplitter { public:virtual void split() 0;virtual ~ISplitter() {} };// 工厂基类 class SplitterFactory { public:// 虚函数延迟到运行时依赖virtual ISplitter* CreateSplitter() 0;virtual ~SplitterFactory() {} };//创建一个工厂类专门负责对象的实例化// 具体类 class BinarySplitter : public ISplitter {};class TxtSplitter : public ISplitter {};class PictureSplitter : public ISplitter {};class VideoSplitter : public ISplitter {};// 具体工厂每一个具体类都对应着一个专门生产这种对象的工厂 class BinarySplitterFactory : public SplitterFactory { public:virtual ISplitter* CreateSplitter() {return new BinarySplitter();} };class TxtSplitterFactory : public SplitterFactory { public:virtual ISplitter* CreateSplitter() {return new TxtSplitter();} };class PictureSplitterFactory : public SplitterFactory { public:virtual ISplitter* CreateSplitter() {return new PictureSplitter();} };class VideoSplitterFactory : public SplitterFactory { public:virtual ISplitter* CreateSplitter() {return new VideoSplitter();} };// MainForm 没有具体类的依赖 // 只有抽象的类的依赖 // 把依赖具体类转移了 class MainForm : public Form {SplitterFactory* factory; // 含有工厂成员public:MainForm(SplitterFactory* factory) {this-factory factory;}//想要实例化什么样的对象由运行时决定void Button1_Click() {ISplitter* splitter factory-CreateSplitter(); // 多态newsplitter-split();} };
http://www.hkea.cn/news/14460417/

相关文章:

  • 淄博城乡建设局网站手机商城图片
  • 东莞seo建站优化费用建筑直聘网
  • 合肥网站建设网站推广津学院金华手机建站模板
  • 网站可能存在什么问题吗直播app开发要多少钱
  • 班级网站怎么做ppt公司起名字大全免费查询
  • 上海徐家汇网站建设网络工程师需要什么证书
  • 医院网站建设标书2023年舆情分析报告
  • 郑州电力高等专科学校就业去向如何进行网站性能优化?
  • 做网站宣传图片淘宝店铺800一个收购
  • php网站开发图片网络营销策划的方法
  • 盐城网站建设制作深圳做网站哪家
  • 电商网站设计特点山东恒正建设有限公司 网站
  • 中国书画画廊网站模板亚马逊中国网站建设目标
  • 如何自己弄一个网站海宁网站怎么做seo
  • 泉州市建设系统培训中心网站洛阳网络建站
  • 庄行网站建设网站做排名有用吗
  • 浙江网站建设服务公司wordpress 字母标签页
  • 鹤岗建设局网站做技术网站赚钱
  • 网站做推广网站建设专题的意义
  • 网站建设合同属于什么税目网站定制开发
  • 网站维护入门教程知果果网站谁做的
  • go 语言 做网站vs2012 网站开发
  • 做网站平方根怎么表示中电云主机怎样登入创建的网站
  • 使用wordpress的用户有哪些小米企业网站的优化建议
  • 去视频网站做编辑php免费源码网站
  • 哪些网站是单页面网站制作公司昆明
  • 中国新闻社官方网站湖南建设资质申请网站
  • 商城网站开发技术企业管理者培训查询
  • 武安专业做网站清远市建设工程造价信息网站
  • 网站登录密码怎么取消保存wordpress淘点金组件