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

网站建设分录怎么开网络广告策划与制作

网站建设分录怎么开,网络广告策划与制作,做品牌推广应该怎么做,软件开发管理软件模式定义 空对象模式(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://www.dtcms.com/wzjs/368980.html

相关文章:

  • 去什么网站可以做ctf的题目网站百度不收录
  • 品牌网站建设策seo算法优化
  • 哪个网站代做ppt便宜个人网站推广方法
  • 合肥网站制作需济南seo外包公司
  • 网站开发中怎么联系客服关键词优化app
  • 360排名优化嘉兴seo外包公司费用
  • 做网站 客户大概会有那些问题百度竞价怎么收费
  • 网站备案备注网络营销运营推广
  • 淘宝客没有网站怎么做郑州网络推广排名
  • 毕业设计如何用dw做网站杭州网站优化服务
  • 绍兴高兴区建设网站今日国内热点新闻头条事件
  • 网页设计代码html个人简介湖南关键词优化首选
  • 做网站编辑需要什么文凭石家庄网站建设就找
  • 怎么样让网站正常解析重庆网站优化排名推广
  • 新余专业的企业网站建设公司外贸建站网站推广
  • 成都上市的网站建设公司手机端关键词排名优化软件
  • 网上营销型网站有哪些百度网盘搜索引擎入口在哪
  • 轴承外贸平台哪个网站最好跨境电商平台有哪些
  • 郑州网站推广方式中国进入全国紧急状态
  • 网站如何防止攻击制作网站
  • 制作企业网站的机构推荐关键词搜索量查询工具
  • 手机端企业网站怎么做新手seo入门教程
  • 网站描述样本网站软件开发
  • 高端 网站建设网站建设的好公司
  • 怎么做网站自动采集数据南宁百度seo排名价格
  • 大型科技网站建设公司seo是什么意思
  • wordpress添加指定文章公司seo是指什么意思
  • 网站建设技术分享如何自己建立一个网站
  • 织梦网站采集如何做seo内部优化方式包括
  • 做营销型网站用那个cms好山东关键词快速排名