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

衡水seo_衡水网站建设-燕丰收seo优化裤子关键词

衡水seo_衡水网站建设-燕丰收,seo优化裤子关键词,自助做app的网站,网站发布与推广计划模式定义 空对象模式(Null Object Pattern)是一种行为型设计模式,通过用无操作的空对象替代null值,消除客户端对空值的检查,避免空指针异常。其核心是让空对象与真实对象实现相同接口,但空对象不执行实际逻…

模式定义

空对象模式(Null Object Pattern)是一种行为型设计模式,通过用无操作的空对象替代null值,消除客户端对空值的检查,避免空指针异常。其核心是让空对象与真实对象实现相同接口,但空对象不执行实际逻辑。


模式结构

抽象对象(Abstract Object)

  • 定义所有对象的统一接口(如Tool类中的use()方法)。
    真实对象(Real Object)
  • 实现具体功能(如DrillTool钻孔操作)。
    空对象(Null Object)
  • 实现相同接口但无实际操作(如NullTool静默处理调用)。

适用场景

数控系统工具管理:未安装工具时返回空工具对象。
避免空值检查:如数据库查询未找到记录时返回空实体。
简化客户端逻辑:无需判断对象是否为null


C++示例(数控系统工具切换)

场景说明:
数控机床切换工具时,若未安装工具则返回空对象,避免空指针异常。

#include 
#include // 抽象工具接口
class Tool {
public:virtual void use() = 0;virtual ~Tool() = default;
};// 真实对象:钻孔工具
class DrillTool : public Tool {
public:void use() override {std::cout << "钻孔工具启动:开始钻孔操作\n";}
};// 真实对象:切割工具
class CuttingTool : public Tool {
public:void use() override {std::cout << "切割工具启动:开始切割操作\n";}
};// 空对象:未安装工具
class NullTool : public Tool {
public:void use() override {// 空操作,不输出任何内容}
};// 工具工厂类
class ToolFactory {
public:static std::shared_ptr getTool(int toolId) {switch (toolId) {case 1: return std::make_shared();case 2: return std::make_shared();default: return std::make_shared(); // 无效ID返回空对象}}
};// 客户端代码(数控系统操作)
int main() {// 模拟工具切换(假设当前未安装工具,ID=0)auto tool = ToolFactory::getTool(0);tool->use(); // 安全调用,无空指针风险// 安装钻孔工具(ID=1)tool = ToolFactory::getTool(1);tool->use();return 0;
}

代码解释
抽象接口Tool

  • 定义use()方法,强制所有工具实现统一操作。
    真实工具类:
  • DrillToolCuttingTool实现具体功能(钻孔、切割)。
    空对象NullTool
  • 重写use()但不执行任何操作,避免客户端因未安装工具而崩溃。
    工厂类ToolFactory
  • 根据工具ID返回真实对象或空对象,隐藏空值判断逻辑。

优势与引用来源

消除空检查:客户端无需判断if (tool != nullptr)
增强健壮性:空对象提供无害默认行为,防止程序崩溃。
代码简洁性:逻辑集中于工厂类,客户端调用更简洁。


文章转载自:

http://KBhWNvxX.Lgznf.cn
http://psp31rpf.Lgznf.cn
http://9HPmMYOk.Lgznf.cn
http://tPDPurRc.Lgznf.cn
http://x7vafQ3R.Lgznf.cn
http://aze2T4LR.Lgznf.cn
http://RYUH0iQc.Lgznf.cn
http://k2WUEYR3.Lgznf.cn
http://o6CTNSF2.Lgznf.cn
http://DbksEGm2.Lgznf.cn
http://FsBH4alR.Lgznf.cn
http://RrpjH87h.Lgznf.cn
http://j2bZeF8n.Lgznf.cn
http://qFFQ32gG.Lgznf.cn
http://ivc9TUvL.Lgznf.cn
http://K1G2ooGr.Lgznf.cn
http://82CiGACV.Lgznf.cn
http://RCkWscZ4.Lgznf.cn
http://lt0KTnoJ.Lgznf.cn
http://SPtPoDRf.Lgznf.cn
http://9DPY12Fn.Lgznf.cn
http://N9paBpzh.Lgznf.cn
http://FAvC9JwZ.Lgznf.cn
http://UdHYZOgU.Lgznf.cn
http://oy222vZD.Lgznf.cn
http://s31QMXT0.Lgznf.cn
http://Nvirat5j.Lgznf.cn
http://qwyQCm2R.Lgznf.cn
http://A8rDEUs8.Lgznf.cn
http://6Mmab8Pk.Lgznf.cn
http://www.dtcms.com/wzjs/623724.html

相关文章:

  • 广州做网站哪个公司做得好17做网店
  • 上海新建设建筑设计有限公司网站时间轴网站模板
  • 企业网站建设费怎么入账哪个公司做网站比较好
  • 电脑记事本做网站文件外链
  • 滁州58同城网站怎么做百度广告推广平台
  • 用vs session做网站导航网址大全
  • ppt网站网站设计与网页制作
  • 违法网站开发者学编程哪家机构最好
  • 网站定制那个好有没有专业做挂的网站吗
  • 网站建设的要求有哪些方面360seo排名优化服务
  • 国外做网站卖东西要什么条件让别人做网站需要注意什么
  • 怎么做网站申请广告摄影比赛投稿网站
  • 网站制作公司信科网络本科电子商务专业就业方向
  • 深圳企业推广网站秒赞网站建设
  • 网站排名点击工具中信建设有限责任公司 吴方旭
  • 小型网站建设教程判断网站cms
  • 理财网站方案建设php网站整合dz论坛
  • 网站开发电子商务网上做设计兼职哪个网站好点
  • 宠物网站开发与实现结论石狮网站建设联系电话
  • 平板做网站服务器什么是自助网站
  • 石家庄市城乡和建设局网站做机械外贸什么网站好
  • 做网站公司电话wordpress文件上传位置
  • 深圳网站建设服务哪便宜西湖区高端网站建设
  • 贵阳微网站怎么做网站设计方案
  • 合肥最好的网站建设公司网站域名被注销
  • 自己建设网站用哪个基础网站建设的实施步骤
  • 优化网站流量担路网如何快速做网站
  • 网站建设创新互联公司深圳做网站哪家便宜
  • 福州城市建设规划网站淘宝运营推广
  • 个人网站备案和企业网站备案吗手机网站模板 网址