太原优化型网站建设网络科技公司取名

news/2025/9/28 10:18:24/文章来源:
太原优化型网站建设,网络科技公司取名,建设商务网站公司,大连建设网节能办公室网站Decorator 动机 在某些情况下我们可能会“过度地使用继承来扩展对象的功能”#xff0c; 由于继承为类型引入的静态特质#xff0c;使得这种扩展方式缺乏灵活性#xff1b; 并且随着子类的增多#xff08;扩展功能的增多#xff09;#xff0c;各种子类的组合#xff…Decorator 动机 在某些情况下我们可能会“过度地使用继承来扩展对象的功能” 由于继承为类型引入的静态特质使得这种扩展方式缺乏灵活性 并且随着子类的增多扩展功能的增多各种子类的组合扩展 功能的组合会导致更多子类的膨胀如何使”对象功能的扩展“能够根据需要动态实现同时避免”扩展功能的增多“带来的子类膨胀问题从而使得任何”功能扩展变化“所导致的影响降到最低 模式定义 动态组合地给一个对象增加一些额外的职责。就增加功能而言Decorator模式比生成子类继承更为灵活消除重复代码 减少子类个数。 #include iostreamclass Component { public:virtual ~Component() {}virtual void operation() 0;// ... };class ConcreteComponent : public Component { public:~ConcreteComponent() {}void operation(){std::cout Concrete Component operation std::endl;}// ... };class Decorator : public Component // is-a 为了完善接口规范 { private:Component *component; // has-a 为了将来具体的实现public:~Decorator() {}Decorator(Component *c) : component(c) {}virtual void operation(){component-operation();}// ... };class ConcreteDecoratorA : public Decorator { public:ConcreteDecoratorA(Component *c) : Decorator(c) {}void operation(){Decorator::operation();std::cout Decorator A std::endl;}// ... };class ConcreteDecoratorB : public Decorator { public:ConcreteDecoratorB(Component *c) : Decorator(c) {}void operation(){Decorator::operation();std::cout Decorator B std::endl;}// ... };int main() {ConcreteComponent *cc new ConcreteComponent();ConcreteDecoratorB *db new ConcreteDecoratorB(cc);ConcreteDecoratorA *da new ConcreteDecoratorA(db);Component *component da;component-operation(); delete da;delete db;delete cc;return 0; } /* Concrete Component operation Decorator B Decorator A */何时场景 动态且透明地向各个对象添加职责即不影响其他对象对于可以撤销的责任当通过子类化扩展不切实际时 总结 通过采用组合而非继承的手法 Decorator模式实现了在运行时动态扩展对象功能的能力而且可以根据需要扩展多个功能。避免 了使用继承带来的“灵活性差”和“多子类衍生问题Decorator类在接口上表现为is-a Component的继承关系即Decorator类继承了Component类所具有的接口为了完善接口规范。但在实现上又表现为has-a Component的组合关系即Decorator类又使用了另外一个Component类为了将来的具体实现Decorator模式的目的并非解决“多子类衍生的多继承”问题 Decorator模式应用的要点在于解决“主体类在多个方向上的扩展功能”——是为“装饰”的含义。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建站专业定制招聘网站页面设计图片

1、前言 很多深度学习的项目免不了安装库文件、配置环境等等,如果利用官方提供的连接,网速很慢,而且很容易download掉。 所以配置好了虚拟环境,将pip换源属实重要 常见的国内镜像源有清华、中科大、阿里等等... 这里建议用中科…

php购物网站开发设计乐清网站制作公司哪家好

适用于发生重大错误的时候,尤其是责任都在自己身上的情况。 在出现重大错误的时候,在谈话的开始,就直接讲明错误的具体情况,给对方带来的损失,把问题分析透彻,主动承认自己的各种问题和错误,主…

西宁做网站君博领先php网站开发打不开

文章目录 一、数据库准备二、导入依赖 与 JDBC工具类三、pojo包处理四、daodao包工具类 五、service六、controllerservlet 基类 反射 七、加密工具类 MD5八、页面文件九、业务代码9.1 注册业务处理9.2 登录业务处理 总结 一、数据库准备 创建数据库: SET NAMES …

WordPress建站收费二级域名网址查询

什么是RAG,RAG的意思就是,如果一套生成式AIGC大模型,你昨天训练了以后,那么今天的知识,还没有给他进行训练,那么回答的时候,他就会遗漏今天的知识,那么我们就可以通过检索的手段,把今天的知识,检索出来,然后补充道prompt中,给这个大模型.让他参考,这样就包含了今天的知识相当于…

网站的扁平化设计理念win10做网站

【Linux】服务器安装SSH 【创作不易,求点赞关注收藏】😀 在Ubuntu服务器上安装并配置SSH非常简单。你可以按照以下步骤进行操作: 1、更新软件包列表 sudo apt-get update2、安装OpenSSH服务器: sudo apt-get install openssh-server3、启…

wordpress淘宝客网站运营中国专业做鞋子的网站

目录 1.感知机计算预测值:2.感知机训练:3.损失函数:4.多层感知机:5.单隐藏层的多层感知机代码实现: 1.感知机计算预测值: 训练结果只有1、-1,故正负相同训练正确,正负相反即训练错误…

无锡做网站seo的app软件开发合同范本

一小部分矩阵论的整理复习,这个由于公式输入的太麻烦了,所以就弄了一点。后面直接看着书复习的。 矩阵论复习线性空间基与维数基变换公式、过渡矩阵、坐标变换公式线性子空间齐次方程组的解空间特征子空间生成子空间交空间和空间维数定理直和线性映射线性…

网站开发开发需求wordpress媒体库文件夹

本文实例为大家分享了Java实现模拟ATM机的具体代码,供大家参考,具体内容如下项目名称模拟ATM机项目描述简单实现ATM机功能代码实现测试类public class Test {//模拟多功能ATM机public static void main(String[] args) {ATM atm new ATM();atm.opearte(…

专业做数据的网站有哪些crm系统分为哪三类

Java中读写资源文件最重要的类是Properties1) 资源文件要求如下:1、properties文件是一个文本文件2、properties文件的语法有两种,一种是注释,一种属性配置。注 释:前面加上#号属性配置:以“键值”的方式书写一个属性的配置信息…

购物网站首页分成几个模块宁波人流医院

一.预备知识 1.基本全局命令 set key value 将key的值设置成value get key 得到key的值 keys [pattern] 查看匹配pattern的所有key 比如h?llo匹配hallo,hbllo,hcllo……只要用一个符号将?代替即可 比如h*llo匹配hllo,heeeello…

网站开发费用多少自己做网站能宣传自己的产品吗

MT8781安卓核心板以其强大的性能和高效的能耐备受瞩目。其八核CPU架构包括(2x Cortex-A76 2.2GHz 6x Cortex-A55 2.0GHz),以及高性能的Arm Mali G57级GPU。同时,配备高达2,133MHz的LPDDR4X内存和快速的UFS 2.2级存储,大大加速了数据访问速…

楼盘网站建设滨州住房和城乡建设部网站

为方便查询,特整理MySQL常用命令。 约定:$后为Shell环境命令,>后为MySQL命令。 1 常用命令 第一步,连接数据库。 $ mysql -u root -p # 进入MySQL bin目录后执行,回车后输入密码连接。# 常用参数&…

全网有哪些网站可以做淘客域名及对应网站

我正在制作一个Java程序来计算Simpson的积分规则.这是我的代码.注意count 4,9,10,11的输出值中的第二列数字.它们不是我需要的数字,它们不遵循这种模式.我需要这些数字是准确的.发生了什么,我该如何解决?public static void main(String[] args){double totalS 0.…

网站互动推广苏州网站建设费用

特征工程:是对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用。从本质上来讲,特征工程是一个表示和展现数据的过程。在实际工作中,特征工程旨在去除原始数据中的杂质和冗余,设计更高…

学做网站要会哪些搜索引擎推广预算

如果完整string匹配, matches()将只返回true。 find()会尝试find匹配正则expression式的子string中的下一个匹配项。 注意强调“下一个”。 这意味着,多次调用find()的结果可能不一样。 另外,通过使用find()你可以调用start()来返回子string匹…

MCU的闪存(FLASH)按机制结构划分区域

MCU的闪存(FLASH)按机制结构划分区域pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monac…

T2

我个蒟蒻赛时连 T1 都没切,但是这个 T2 真的很水啊。 $$\texttt{Solution}$$ 难度不高,爆想了 10 分钟有了一个贪心的思路,来看这张图理解一下:这就是一个比较简单的例子,我们考虑从它推演到一般情况。 因为需要从…

负载均衡式在线OJ工程复盘

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

题解:CF1930I Counting Is Fun

跟标题一样有趣的计数题。 题意:很简单了,不再赘述。 做法: 首先看到这个至少一半,还要是 01 串,很容易想到先将 \(0\) 赋值为 \(-1\),\(1\) 赋值为 \(1\),那么 \(0, 1\) 至少一半就等于要求区间和 \(\le 0,\ge…

AI百炼大模型接入钉钉,实现在群中免@交互式新闻推送

AI百炼大模型接入钉钉自动化推送新闻进入百炼大模型创建智能体,或者工作流(我这里采用的智能体更为便捷)创建百炼大模型设置大模型选项,打开联网搜索----点击插件---插入对应的插件,如新闻插件设置大模型提示词创…