首页 > 其他分享 >学习随笔(设计模式:装饰模式)

学习随笔(设计模式:装饰模式)

时间:2023-11-14 17:00:28浏览次数:23  
标签:功能 随笔 代码 模式 添加 设计模式 装饰

内容

今天学习了新的设计模式,装饰模式。装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。

收获

1.当我们在设计软件时,考虑使用基类和派生类的时候,就可以考虑是否可以使用装饰模式,因为装饰模式比生成子类更加灵活
2.当我们对一个已有的类添加额外的功能时,开放-封闭原则思想指引我们不要通过修改类的方式给类添加新的接口,那么我们可以把非核心功能放在一个单独的类中,客户可以使用装饰包装对象。
3.装饰模式可以将核心代码和非核心代码(装饰功能代码)分开管理,核心代码会更为简洁。

感悟

1.如果在已有类中添加新的功能,不要修改核心代码功能,新增一个类,在该类中添加装饰功能
2.可以将一类原始类通过装饰变成A类,再通过装饰将A类装饰成B类,将B类装饰成C类,那么调用C类的方法就可以实现C类独有功能,然后完成B类独有功能,再完成A类独有功能,再完成原始类功能。

示例代码

有时间的话后面补充

标签:功能,随笔,代码,模式,添加,设计模式,装饰
From: https://www.cnblogs.com/daerduotutwo/p/17832025.html

相关文章

  • Spring5学习随笔-Spring5的第一个程序(环境搭建、日志框架整合)
    学习视频:【孙哥说Spring5:从设计模式到基本应用到应用级底层分析,一次深入浅出的Spring全探索。学不会Spring?只因你未遇见孙哥】第二章、第一个Spring程序1.软件版本1.JDK1.8+2.Maven3.5+3.IDEA2018+4.SpringFramework5.1.4官网:www.spring.io2.环境搭建Spring的jar包......
  • 随笔-Centos7 install systemtap
    SystemTapBeginnersGuideChapter2.UsingSystemTapThischapterinstructsusershowtoinstallSystemTap,andprovidesanintroductiononhowtorunSystemTapscripts.2.1.InstallationandSetupTodeploySystemTap,SystemTappackagesalongwiththeco......
  • 学习随笔(设计模式:面向对象原则)
    内容今天学习了面向对象的几种设计思想原则,之前一直是C开发,所以面向过程的思想比较严重。面向对象的四个好处:可维护好、可拓展性好、可复用性好、灵活性好。收获1.单一职责原则:封装一个类,职责应该单一,仅有一个以其它变换的原因,所以要做好类的职责分离。2.开放-封闭原则:软件实......
  • 每日随笔——适配器模式
    [实验任务一]:双向适配器实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。实验要求:1.画出对应的类图;2.提交源代码;3.注意编程规范。类图 源码:Catpackagesc8;publicinterfacecat{voidcatchMouse();voidcry();}Dogpackagesc8;publicinter......
  • 连载随笔:VBA工具No.2:APOX输入数据辅助制作工具
     一、需求背景        2009年,3G(TD-SCDMA)工程大规模上线,无线网络规划工程师在进行TD-SCDMA无线网络仿真工作中,经常为制作APOX(中国移动设计院的3G仿真软件)仿真输入数据伤浪费了宝贵的时间。    通过APOX输入数据辅助制作工具工具可快速实现仿真输入数据格......
  • 软件设计模式学习每日总结-第一天
    Uml类图1、分三层,从上至下分别为类名,属性,方法。2、类与类之间的关系:关联(聚合,组合)、依赖、继承、实现。3、依赖是最低耦合,继承是最高耦合。  七大原则1、开闭原则:程序代码对扩展开发,对修改关闭。2、里氏代换原则:子类可以扩展父类功能,但是不要修改父类原有的功能。3......
  • 连载随笔:第一个VBA工具的诞生-站间距计算工具(二)
    四、工具打磨     2008年,结合大家的使用反馈,我不断地修改BUG,调整适用功能,到2008年6月16日发布了V2.4版本。      V2.4版本还增加了3种输出格式。     2008年我到了南昌,由于工作负荷的增加,VBA编程就偃旗息鼓了一段时间。2013年的时候,由于4G(TD-L......
  • 新随笔
    CSPT4想出不难。调了一会儿。做出的题还是必须对拍,输不起。线性基query正确写法x=max(x,x^b[i]),if(!(x>>i&1))x^=b[i];常数巨大。集合B中选两数,线性基A中选任意个数:用A消掉B中数的对应位,这样对B'而言,选全A中数一定最优,在B'中trie求两数最大异或和即可。......
  • 博客园发布随笔发布成功后自己能看到 别人那里却显示处于隐藏状态怎么解决
    如果在博客园发布随笔后,你能看到但其他人却显示为隐藏状态,可能存在以下解决方法:检查隐私设置:登录到博客园,并访问个人设置页面。确认你的随笔的隐私设置是公开或对所有人可见,而不是仅限自己或部分访问权限。检查编辑模式:确保你在发布随笔时没有选择草稿或私密模式。有时候误......
  • 随笔 复习 连接池 线程池
    连接池实现思路classConnectPool{public:ConnectPool(intnumber){for(inti=0;i<=number;i++){intfd=socket(); //创建通信的fdconect(); //连接服务器m_list.push(fd);//往容器中存储链接......