设计模式
文章平均质量分 65
helloworddm
这个作者很懒,什么都没留下…
展开
-
Android分段进度条(继承View实现)
titles.add("process1"); titles.add("process2"); titles.add("process3"); titles.add("process4"); Set indexSet = new HashSet(); indexSet.add(0); indexSet.add(1); nodeProgressView.show原创 2023-12-20 13:21:41 · 654 阅读 · 0 评论 -
c#的event使用(1)
在C#中,事件是一种用于在类或对象之间进行通信的机制。当某个特定的事件发生时,与该事件相关联的方法(称为事件处理程序)将被调用。有时间到来的时候,会触发相应的注册的事件处理函数。语句调用事件处理程序。当需要触发事件时,使用。是一个事件成员变量,它是一个。原创 2023-12-14 13:22:33 · 650 阅读 · 0 评论 -
python路径问题
在open函数中使用相对路径…总是提示文件不存在。于是便使用绝对路径了。python这个坑,挺害人的呀。记录下来,浪费了好多的时间。原创 2023-11-14 16:48:22 · 137 阅读 · 0 评论 -
blazor webassembly前后台分离
maui blazor的出现,对于andoid平台,windows平台,苹果平台只需要一套代码,就可以在任意设备运行。前台代码通常部署在nginx下面,nginx作为最经典的反向代理服务器,具有很高的性能,这是因为它使用了多路复用技术,这个技术redis也用了,所以redis的性能会很高。中对前后台分离有基本的介绍,文章基于的是node.js做中转服务实现前后台分离。实现了客户端的实时通讯,它的计算跟渲染都在服务端处理,对服务要求还是蛮高的。随着微服务的兴起,前后台分离现在已经是非常主流的技术了。原创 2023-04-09 22:00:35 · 534 阅读 · 0 评论 -
设计模式之单例模式(2)
这个算是补上8月分的,8月事情比较多。好久没写破解相关的文章了,接下来会写一些破解的文章,破解的目标是虎牙直播客户端。欢迎大家关注。原创 2022-09-06 13:37:36 · 281 阅读 · 0 评论 -
设计模式之单例模式(1)
单例分在懒汉和饿汉模式,而存在线程不安全问题的只在懒汉模式出现。所以可以的话,用饿汉式就可以,避免了很多没必要的麻烦。这中缺点就是即使不要要也会实例化,但大多数情况下不会差这一点的内存。鸿蒙系统中又很多地方使用单例(C++),而且还用还提供了一个模板类了,代码如下,其实它没有保证构造函数私有,不过这又有什么关系那,重要的是模式,而不是那个死板的定义,一个模板简化可多少的操作。public{}private};instance_;}}}上面的双检锁技术依然存在问题。.........原创 2022-07-30 20:24:58 · 254 阅读 · 0 评论 -
设计模式系列之状态模式(5)
在 设计模式系列之状态模式(4) 中介绍了状态机和Stateless开源状态机库。本文通过Stateless来实现 设计模式系列之状态模式(2) 中提到的审批流程。请假流程图Stateless实现直接上代码:using Stateless;using Stateless.Graph;const string project_manager_audit = "项目经理审批";const string is_over_three = "是否大于3天";const string depart_原创 2022-05-06 11:28:36 · 294 阅读 · 0 评论 -
设计模式之状态模式(5)
在 设计模式系列之状态模式(3) 中对审批流程进行了介绍。本文使用C#的状态积来完成类似的功能。原创 2022-01-28 19:17:43 · 858 阅读 · 0 评论 -
设计模式之状态模式(4)
快过年了,想着请假提前回家,于是就不得不向领导提出申请,这个审批流是怎么实现的那?在 设计模式系列之状态模式(2) 中主要是通过在状态类中来对状态进行转化和维护。本文基于此实现一个简易版本的审批流程。审批流请假流程如下:说到请假,我就郁闷,就请半天假用问的那么仔细的。还有那位仁兄,有必要那么较真吗,浪潮的某位领导和同事,都是工作,何苦为难彼此?哎,有些人真的让人很无语的。废话不多说了,简化了UI和数据库的操作,目前的主要的流程:提出申请项目经理审批如果超过3天,需要部门经理审批无论审批结原创 2022-01-24 21:07:44 · 737 阅读 · 2 评论 -
设计模式系列之状态模式(3)
在设计模式之状态模式中对状态模式进行了介绍,留下了一个悬念,如何彻底干掉if/else。本文主要解决这个问题。状态转化和维护在上一篇文章中,状态的维护在上下文中,这就不可避免的使用到if/else进行判断。如果把状态的维护放在状态的处理类中,那就可以避免大连的if/else使用了。状态处理类中维护状态: 当每一个状态对象处理完自身的状态所对应的功能喉,咳哟根据需要指定后继的状态,以便让应用能够正确处理后续的请求。时序图类图和上面的文章一样,主要看时序图,能够很方便理解上面的内容。恶意投票状态和.原创 2022-01-09 16:15:28 · 445 阅读 · 0 评论 -
设计模式系列之状态模式(2)
前言如何增加代码行数,设计模式应该是一个不错的选择。后续设计模式的内容会持续更新,欢迎关注。语言使用的是C#,纯面向对象的语言。笔者比较喜欢C#,C#的语法糖和设计都很棒,其他语言同理,语言只是工具。设计模式的目的增加代码量是最不重要的目的,其真正的目的是符合软件设计原则:开闭原则依赖倒置原则接口隔离原则单一职责原则其中的开闭原则是最重要的,大部分的设计模式也在解决这个问题。不用设计模式设计一个投票系统。要求如下:投票一次,表示投票成功投票在3次以内,提示不要重复投票3次.原创 2022-01-03 16:33:52 · 469 阅读 · 0 评论 -
模拟登陆qq空间实现(3)
在自动登陆QQ空间(2) 中通过不断缩小距离实现了滑块的破解,这种适合在滑块位置相对固定的系统,不过对于随机缺口的滑块可能要尝试很多次依然不能成功,就像前面文章所说的打卡系统那样。因此,如果能有办法直接定位缺口的位置,那就完美了。本文主要说如何定位缺口的位置。OpenCvOpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Py原创 2021-07-09 23:17:17 · 350 阅读 · 3 评论 -
全盘扫描是怎么实现的
在疯狂java讲义习题11.1使用Java语言列出了指定目录的所有文件。这里使用C#来实现同样的功能,使用递归和非递归两种方式。基于文件遍历,实现类似everything的功能以及grep功能。C#微软出品,必属精品。C#和Java谁更好是一个一直存在的问题。怎么说那,如果一定要选择一个的话,我选择C#,因为.NET平台的架构是Java无法比拟的(能否最终实现,还要看微软了)。.NET架构:.NET5的架构:Ubuntu下C#开发使用的IDE是MonoDevelop(https://ww.原创 2021-05-30 11:19:16 · 640 阅读 · 0 评论 -
plantuml官方文档注意事项
时序图简单示例你可以用->来绘制参与者之间传递的消息, 而不必显式地声明参与者。你也可以使用 --> 绘制一个虚线箭头。另外,你还能用 <- 和 <–,这不影响绘图,但可以提高可读性。 注意:仅适用于时序图,对于其它示意图,规则是不同的。声明参与者声明参与者使用的关键字(不区分大小写)participantActorBoundaryDataBasec...原创 2019-10-13 13:53:22 · 756 阅读 · 0 评论 -
Markdown
Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表格、脚注、内嵌HTML等等),这些功能原初的Markdown尚不具备,它们能让Markdown转换成更多的格式,例如LaTeX,Docbook。Markdown增强版中比较有名的有Markdown Extra、...原创 2019-10-13 13:09:01 · 179 阅读 · 0 评论 -
linux netstat 端口占用
话不多说,本文介绍Linux常规操作:查看端口占用进程,根据PID kill掉相关进程。另外补充:根据程序名查看进程PID。首先,两条命令,lsof命令和netstat命令。方式一:lsof命令1、查看占用端口进程的PID:lsof -i:{端口号}2、根据PID kill掉相关进程:kill -9 {PID}方式二:netstat命令1、查看占用端口进程的PID:netsta...转载 2019-05-14 15:37:12 · 261 阅读 · 0 评论 -
设计模式之模板模式(1)
定义定义一个操作中的算法骨架而将一些步骤延迟到子类中,模板模式使得子类可以在不改变一算法的结构即可重定义改算法的某些特定步骤。使用场景通用的增删改查代码先来看一下外部jar包的导入。 在design上右击选择Properities 选择Add External Jars…导入需要的JAR包 这里先写一个简单的数据库插入功能 (1)定义用户数据模型package template;p原创 2017-10-15 13:21:19 · 335 阅读 · 1 评论 -
设计模式之状态模式
定义允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。还没有明显感觉出和策略模式有什么本质区别。书上给出的时一个是可替换的,另一个不可替换,下次再研究下。使用场景考虑一个在线投票系统的应用,实现一个用户只能投一票,如果一个用户反复投票,而且投票次数超过5次,则判定为恶意投票,取消该用户的投票资格,当然要取消该用户所投的票,如果一个用户投票的次数超过8次,加入黑名单,禁止再登陆和原创 2017-10-15 00:13:04 · 354 阅读 · 0 评论 -
设计模式之代理模式
代理模式为其他对象提供一种代理以控制对这个对象的访问。保护代理只有具有制定权限的人才能执行相应的setter方法。代理的一些定义把自己实现的代理模式称为Java的静态代理。把使用Java内建的对代理模式支持的功能来实现的代理称为动态代理。Java的动态代理目前只能代理接口,基本的实现是依靠Java的反射机制和动态生成class的技术。代码示例<—————–待续—————————>原创 2017-09-16 22:00:48 · 253 阅读 · 0 评论 -
设计模式之桥接模式
定义稍等原创 2017-10-04 23:57:01 · 184 阅读 · 0 评论 -
设计模式之职责链模式
定义使多个对象都由机会处理请求,从而避免了请求的发送者喝接受者之间的耦合。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。原创 2017-10-07 00:11:15 · 246 阅读 · 0 评论 -
设计模式之装饰者模式
定义动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。使用场景Java的IO流是最经典的装饰模式。其中以输入流为例,其中InputStream相当于装饰模式中的Component,其中FileInputStream直接继承InputStream,相当于装饰模式中的ConcretComponent,FilterInputStream相当于装饰模式中的De...原创 2017-10-07 14:00:52 · 373 阅读 · 1 评论 -
设计模式之迭代模式
#定义提供一种方法顺序访问一个聚合对象的各个元素而有不暴露该该对象的内部表示。使用场景客户收购了另一甲公司,客户方的老板像查看全部工资情况,但是双方存储工资使用了不同的数据结构。代码稍等原创 2017-10-03 21:46:57 · 339 阅读 · 0 评论 -
设计模式之享元模式(1)
定义运用共享技术有效支持大量细粒度的操作。原创 2017-10-07 20:45:47 · 206 阅读 · 0 评论 -
设计模式之享元模式(2)
本质分离与共享。原创 2017-10-08 02:35:29 · 238 阅读 · 0 评论 -
设计模式之享元模式(3)
享元模式和组合模式不需要共享的享元模式代码示例原创 2017-10-08 14:07:19 · 233 阅读 · 0 评论 -
设计模式之享元模式(4)
垃圾回收引用计数,先去洗个澡去,脑子一片混乱呀。原创 2017-10-08 15:17:52 · 289 阅读 · 0 评论 -
设计模式之观察者模式
定义定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都得到通知并被自动更新。场景水质检测。当水质为清澈时,让检测人员进行记录,当水质为轻度污染时,通知预警人员和检测人员,当水质为重度污染时,通知行政人员以及预警人员和检测人员。水质污染的状态发生变化,通知的人员也发生相应的变化,适合用观察者模式。代码示例首先定义观察者接口,这里增加了对观察者职务的获取和设置。packag原创 2017-09-24 12:07:03 · 208 阅读 · 0 评论 -
设计模式之组合模式
定义将对象组合成树形结构以表示部分整体的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。适用场景对服装的分类,服装->(男装,女装),男装->( 衬衣,夹克),女装->(裙子,套装)。代码首先定义组件对象package composite;public abstract class Component { public abstract void printStru(Str原创 2017-10-03 18:08:50 · 341 阅读 · 1 评论 -
设计模式之访问者模式
定义表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提定义作用与这些元素的新操作。使用场景扩展客户管理的功能。公司的客户分为两大类,一类使企业客户,另一类是个人客户,现在要求客户能够实现服务申请,同时可以添加客户价值分析,客户偏好分析的功能。UML(20180403添加,copy的)代码这里首先实现对客户进行服务申请,打印示例而已。 ...原创 2017-10-04 12:03:35 · 308 阅读 · 0 评论 -
设计模式之备忘录模式
定义在不破环对象封装性的前提下捕获一个对象的内部状态并在该对象之外保存这个状态。这样以后就客人将该对象恢复到原先保存的状态。使用情况简单计算器功能,实现加减法,支持可撤销的操作。这里使用存储恢复式进行可撤销操作,也可以采用补偿进行可撤销操作,后者需要用命令模式。本例中使用备忘录模式和命令模式结合的方式。代码原创 2017-10-09 23:06:53 · 279 阅读 · 0 评论 -
设计模式之策略模式
#定义原创 2017-10-14 22:52:28 · 177 阅读 · 0 评论 -
设计模式之抽象工厂模式
抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。使用情况举例通过主板和cpu组装电脑。这里主板的CPU插槽数要和CPU的针脚数相等,也就是说CPU对象和主板对象是有关联的,同时CPU种类和主板的种类也有很多搭配,可以说是一系列的。原创 2017-08-31 09:04:21 · 335 阅读 · 0 评论