helloworddm
这个作者很懒,什么都没留下…
展开
-
JavaScript回调函数以及一些思考
最终的一点,就是提高了程序的扩展性。只要签名符合callback格式函数,都可以使用test或者test2函数,极大的提高了代码的复用性和可扩展性能。仔细分析上面的代码,可以看出和设计模式中的模版模式很像。可以说是通过回调函数来替代了模版中的子类实现。本编以最简单的例子来说明回调函数的执行过程。典型的mvc中的controller和service,以及service和Dao是转调。这里是回调,简单点说是函数做为参数,对于面向对象语言,可以是接口,可以是委托(C#),对于C/C++语言可以是是(函数指针)。原创 2018-05-05 10:22:25 · 520 阅读 · 1 评论 -
设计模式之单例模式(2)
这个算是补上8月分的,8月事情比较多。好久没写破解相关的文章了,接下来会写一些破解的文章,破解的目标是虎牙直播客户端。欢迎大家关注。原创 2022-09-06 13:37:36 · 334 阅读 · 0 评论 -
设计模式之单例模式(1)
单例分在懒汉和饿汉模式,而存在线程不安全问题的只在懒汉模式出现。所以可以的话,用饿汉式就可以,避免了很多没必要的麻烦。这中缺点就是即使不要要也会实例化,但大多数情况下不会差这一点的内存。鸿蒙系统中又很多地方使用单例(C++),而且还用还提供了一个模板类了,代码如下,其实它没有保证构造函数私有,不过这又有什么关系那,重要的是模式,而不是那个死板的定义,一个模板简化可多少的操作。public{}private};instance_;}}}上面的双检锁技术依然存在问题。.........原创 2022-07-30 20:24:58 · 322 阅读 · 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 · 356 阅读 · 0 评论 -
设计模式之状态模式(5)
在 设计模式系列之状态模式(3) 中对审批流程进行了介绍。本文使用C#的状态积来完成类似的功能。原创 2022-01-28 19:17:43 · 939 阅读 · 0 评论 -
设计模式之状态模式(4)
快过年了,想着请假提前回家,于是就不得不向领导提出申请,这个审批流是怎么实现的那?在 设计模式系列之状态模式(2) 中主要是通过在状态类中来对状态进行转化和维护。本文基于此实现一个简易版本的审批流程。审批流请假流程如下:说到请假,我就郁闷,就请半天假用问的那么仔细的。还有那位仁兄,有必要那么较真吗,浪潮的某位领导和同事,都是工作,何苦为难彼此?哎,有些人真的让人很无语的。废话不多说了,简化了UI和数据库的操作,目前的主要的流程:提出申请项目经理审批如果超过3天,需要部门经理审批无论审批结原创 2022-01-24 21:07:44 · 791 阅读 · 2 评论 -
设计模式系列之状态模式(3)
在设计模式之状态模式中对状态模式进行了介绍,留下了一个悬念,如何彻底干掉if/else。本文主要解决这个问题。状态转化和维护在上一篇文章中,状态的维护在上下文中,这就不可避免的使用到if/else进行判断。如果把状态的维护放在状态的处理类中,那就可以避免大连的if/else使用了。状态处理类中维护状态: 当每一个状态对象处理完自身的状态所对应的功能喉,咳哟根据需要指定后继的状态,以便让应用能够正确处理后续的请求。时序图类图和上面的文章一样,主要看时序图,能够很方便理解上面的内容。恶意投票状态和.原创 2022-01-09 16:15:28 · 477 阅读 · 0 评论 -
设计模式系列之状态模式(2)
前言如何增加代码行数,设计模式应该是一个不错的选择。后续设计模式的内容会持续更新,欢迎关注。语言使用的是C#,纯面向对象的语言。笔者比较喜欢C#,C#的语法糖和设计都很棒,其他语言同理,语言只是工具。设计模式的目的增加代码量是最不重要的目的,其真正的目的是符合软件设计原则:开闭原则依赖倒置原则接口隔离原则单一职责原则其中的开闭原则是最重要的,大部分的设计模式也在解决这个问题。不用设计模式设计一个投票系统。要求如下:投票一次,表示投票成功投票在3次以内,提示不要重复投票3次.原创 2022-01-03 16:33:52 · 519 阅读 · 0 评论 -
设计模式之模板模式(1)
定义定义一个操作中的算法骨架而将一些步骤延迟到子类中,模板模式使得子类可以在不改变一算法的结构即可重定义改算法的某些特定步骤。使用场景通用的增删改查代码先来看一下外部jar包的导入。 在design上右击选择Properities 选择Add External Jars…导入需要的JAR包 这里先写一个简单的数据库插入功能 (1)定义用户数据模型package template;p原创 2017-10-15 13:21:19 · 374 阅读 · 1 评论 -
设计模式之状态模式
定义允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。还没有明显感觉出和策略模式有什么本质区别。书上给出的时一个是可替换的,另一个不可替换,下次再研究下。使用场景考虑一个在线投票系统的应用,实现一个用户只能投一票,如果一个用户反复投票,而且投票次数超过5次,则判定为恶意投票,取消该用户的投票资格,当然要取消该用户所投的票,如果一个用户投票的次数超过8次,加入黑名单,禁止再登陆和原创 2017-10-15 00:13:04 · 388 阅读 · 0 评论 -
设计模式之策略模式
#定义原创 2017-10-14 22:52:28 · 204 阅读 · 0 评论 -
设计模式之备忘录模式
定义在不破环对象封装性的前提下捕获一个对象的内部状态并在该对象之外保存这个状态。这样以后就客人将该对象恢复到原先保存的状态。使用情况简单计算器功能,实现加减法,支持可撤销的操作。这里使用存储恢复式进行可撤销操作,也可以采用补偿进行可撤销操作,后者需要用命令模式。本例中使用备忘录模式和命令模式结合的方式。代码原创 2017-10-09 23:06:53 · 307 阅读 · 0 评论 -
设计模式之访问者模式
定义表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提定义作用与这些元素的新操作。使用场景扩展客户管理的功能。公司的客户分为两大类,一类使企业客户,另一类是个人客户,现在要求客户能够实现服务申请,同时可以添加客户价值分析,客户偏好分析的功能。UML(20180403添加,copy的)代码这里首先实现对客户进行服务申请,打印示例而已。 ...原创 2017-10-04 12:03:35 · 362 阅读 · 0 评论 -
设计模式之组合模式
定义将对象组合成树形结构以表示部分整体的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。适用场景对服装的分类,服装->(男装,女装),男装->( 衬衣,夹克),女装->(裙子,套装)。代码首先定义组件对象package composite;public abstract class Component { public abstract void printStru(Str原创 2017-10-03 18:08:50 · 376 阅读 · 1 评论 -
设计模式之代理模式
代理模式为其他对象提供一种代理以控制对这个对象的访问。保护代理只有具有制定权限的人才能执行相应的setter方法。代理的一些定义把自己实现的代理模式称为Java的静态代理。把使用Java内建的对代理模式支持的功能来实现的代理称为动态代理。Java的动态代理目前只能代理接口,基本的实现是依靠Java的反射机制和动态生成class的技术。代码示例<—————–待续—————————>原创 2017-09-16 22:00:48 · 289 阅读 · 0 评论 -
设计模式之桥接模式
广义的桥接不就是面向接口吗原创 2017-10-04 23:57:01 · 229 阅读 · 0 评论 -
设计模式之职责链模式
定义使多个对象都由机会处理请求,从而避免了请求的发送者喝接受者之间的耦合。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。原创 2017-10-07 00:11:15 · 294 阅读 · 0 评论 -
设计模式之装饰者模式
定义动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。使用场景Java的IO流是最经典的装饰模式。其中以输入流为例,其中InputStream相当于装饰模式中的Component,其中FileInputStream直接继承InputStream,相当于装饰模式中的ConcretComponent,FilterInputStream相当于装饰模式中的De...原创 2017-10-07 14:00:52 · 426 阅读 · 1 评论 -
设计模式之迭代模式
#定义提供一种方法顺序访问一个聚合对象的各个元素而有不暴露该该对象的内部表示。使用场景客户收购了另一甲公司,客户方的老板像查看全部工资情况,但是双方存储工资使用了不同的数据结构。代码稍等原创 2017-10-03 21:46:57 · 382 阅读 · 0 评论 -
设计模式之享元模式(1)
定义运用共享技术有效支持大量细粒度的操作。原创 2017-10-07 20:45:47 · 236 阅读 · 0 评论 -
设计模式之享元模式(2)
本质分离与共享。原创 2017-10-08 02:35:29 · 283 阅读 · 0 评论 -
设计模式之享元模式(3)
享元模式和组合模式不需要共享的享元模式代码示例原创 2017-10-08 14:07:19 · 264 阅读 · 0 评论 -
设计模式之享元模式(4)
垃圾回收引用计数,先去洗个澡去,脑子一片混乱呀。原创 2017-10-08 15:17:52 · 321 阅读 · 0 评论 -
设计模式之观察者模式
定义定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都得到通知并被自动更新。场景水质检测。当水质为清澈时,让检测人员进行记录,当水质为轻度污染时,通知预警人员和检测人员,当水质为重度污染时,通知行政人员以及预警人员和检测人员。水质污染的状态发生变化,通知的人员也发生相应的变化,适合用观察者模式。代码示例首先定义观察者接口,这里增加了对观察者职务的获取和设置。packag原创 2017-09-24 12:07:03 · 247 阅读 · 0 评论 -
设计模式之抽象工厂模式
抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。使用情况举例通过主板和cpu组装电脑。这里主板的CPU插槽数要和CPU的针脚数相等,也就是说CPU对象和主板对象是有关联的,同时CPU种类和主板的种类也有很多搭配,可以说是一系列的。原创 2017-08-31 09:04:21 · 358 阅读 · 0 评论