技术标签: C#学习 算法 华为 作业 编程 杀毒软件 设计模式
“我明白了,”小菜说,“我昨天写的CashSuper就是抽象策略,而正常收费CashNormal、打折收费CashRebate和返利收费CashReturn就是三个具体策略,也就是策略模式中说的具体算法,对吧?”
客户端主要代码如下:
实现的界面同之前一样(可点击使用)
“大鸟,我用策略模式是实现了,但有些疑问,用了策略模式,则把分支判断又放回到客户端来了,这等于要改变需求算法时,还是要去更改客户端的程序呀?”
“问得好,如果不是因为前面有工厂的例子,再来通过你的思考写出的这个策略模式的程序,你就问不出这样的问题的。”大鸟很开心,继续讲道,“最初的策略模式是有缺点的,客户端必须知道所有的策略类,并自行决定使用哪一个策略类。这就意味着客户端必须理解这些算法的区别,以便适时选择恰当的算法类。换言之,策略模式只适用于客户端知道所有的算法或行为的情况。”
“那还不如工厂模式好用,至少要增加促销或改进打折额度时,不用去大改界面,而现在,界面程序要承担的责任还是太大。没有体现你说的封装变化点的作用呀。”小菜疑问多多。
“就目前而言,的确是这样,这样的程序确实还是不够完善,要改的地方还很多。”大鸟说道,“不过正所谓病毒时间长了会有变种,杀毒软件本身也会随着病毒的变化而升级改良,如果我们对策略模式做一些改进,引入一些新的技术处理方式,就可以避免现在的这种耦合了。小菜,又有新的东西要学了,好好加油呀!”
“大鸟,谢谢你,,你总是让我带着问题去思考,而不是直接说答案,我觉得这样学习进步很快,也不觉得设计模式很难了。”
“,用不着这么客气,我只是觉得,没有人是天生就牛X的,有一些所谓的技术牛人总会在人面前说什么,‘你连这都不懂’,‘这还不简单了,你够笨的’等等说词。给人感觉他非常聪明,天生就会的样子,其实他在之前也不知走过多少弯路,犯过多少错,或许他之前也被更早的牛人羞辱过,所以再继续把羞辱传给后人。”大鸟有些激动。
小菜小心的说道:“大鸟,你是不是也曾经被人羞……”
“哈哈,马云曾说过,男人的胸怀是被冤枉撑大的!天天在这行当里混,阅人无数,被羞辱也是正常的事了。问题在于是不是头脑清醒,自己不能放弃呀。所以我希望能真正的帮助初学者成长,而不是去显示牛气充当狂人。小菜,记住,学习一定是一个自己感悟的过程,而程序员的感悟就是自己写程序做项目,通过实践再学习,最终升华为牛人。”
“嗯,我记住了,不过到底如何改良策略模式呢?”
大鸟微笑不语。
文章浏览阅读568次。1、查看adb 的进程端口号是什么,输入命令 adb nodaemon server 显示端口号2、查看端口号对应的进程pid ,输入命令 netstat -ano 查看对应的端口号的进程号3、查看进程号对应的进程名称或结束进程 tasklist|findstr "进程号" 或 taskkill /f /pid 进程号 ..._adb进程的端口被占用
文章浏览阅读2.7k次。这是我在论坛发的一个帖子,在一哥们儿提醒下解决了,拿出来分享一下 //这是index类,要在这个类里调用另外一个类的panelpublic class IndexFrame extends JFrame {private static final lo_swing freechart chartpanel 放到另外一个panel 显示不出来
文章浏览阅读1.9k次。SpringBoot1:SpringBoot基础入门1-1:什么是SpringBoot1-2:什么是微服务1:SpringBoot基础入门1-1:什么是SpringBoot什么是Spring Spring是一个开源框架,2003年兴起的一个轻量级的Java开发框架,作者:Rod Johnson。 Spring是为了解决企_deprecated configuration property 'spring.http.encoding.charset
文章浏览阅读5.4k次,点赞4次,收藏20次。等待几分钟,自动弹出浏览器界面如下图,如果没有自动弹出浏览器窗口,我们可以手动复制图中倒数第三行local的地址,打开浏览器粘贴到地址栏,回车测试我们是否成功创建了vue项目。什么是JS(JavaScript):我封装好一个函数,这个函数可以给其他人调用,这个就是一个js。4.运行输出下面这些代码,如果你不确定选项具体是什么,这里的y/n问题全部回车跳过即可。浏览器出现上图的界面,表示成功创建好一个vue项目啦,现在可以开始你的前端小项目之旅啦。桌面创建一个空的文件夹,在这里我将它命名为test1。_vscode怎么创建项目
文章浏览阅读1.1k次。先说下业务需求,1.JSON转Excel表必须用xlsx格式,2.前端不能使用关于excel转换的插件,3.不能在后台生成相应的文件 前端纯js只能生成xls格式的Excel,因为公司前端环境比较稳定,在前端不能使用其他Excel插件的情况下,只能在后台用插件进行相关操作。但是因为不能生成文..._node express blob
文章浏览阅读256次。前言:Linux磁盘I/O是Linux内核的重要组成部分,是Linux开发工程师,特别是Linux存储开发工程师必须了解的一课。掌握了这一课,在遇到磁盘I/O相关问题时便会得心应手,缺席了这一课,遇到它时便会觉得云里雾里。dd是Linux的一款简单易用又功能强大的文件拷贝工具,大家再熟悉不过了,今天就带着它一起去探索Linux的磁盘I/O知识吧。dd测试首先看一下一份dd的测试数据,先感受下不同参数下dd的测试结果,然后带着疑问再去探索其中的原由。从上面的测试结果可以看到,没有oflag的时候,_sync direct
文章浏览阅读775次。容器的线程安全性_c++ map是线程安全的吗
文章浏览阅读1.1w次,点赞9次,收藏20次。直接上代码series: [ { type: 'pie', clickable:false, //是否开启点击 minAngle: 5, //最小的扇区角度(0 ~ 360),用于防止某个值过小导致扇区太小影响交互 avoidLabelOverlap: true, //是否启用防止标签重叠策略 _echart 饼状图 文字长度
文章浏览阅读801次。WPF 触发器绘制Datagrid自定义变色单元格 (资源)<Window.Resources> <!--<c:ErrorConverter x:Key="ErrorConverter"/>--> <c:SheetArr x:Key="SheetCols"/> <Style TargetT_wpfdatagrid单元格里绘制不同的图形
文章浏览阅读121次。现有其他方案通常需要分布式系统资深专家,手动对代码进行大规模重构和调优,Colossal-AI 的 ShardFormer 提供了开箱即用的多维并行和算子优化的能力,仅需数行代码即可使用,在单机 / 大规模集群上都能提供良好的性能。为了进一步提升开发和部署效率,Colossal-AI 团队还将上述系统优势与算力结合,提供 Colossal-AI 云平台,提供廉价算力和开箱即用的 AI 主流应用,包括对话大模型,多模态模型,生物医药等,现已开启内测。而对于预训练任务,以使用。新 Gemini 提供了。_colossal ai 应用场景
文章浏览阅读351次,点赞6次,收藏7次。
文章浏览阅读475次。<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency>实验室:_stringutils.getifblank