设计模式(java实现)_状态模式(State)
我总感觉网上写的和我写的不是同一个模式似的… 我这个状态切换的流畅的一批,而且外部调用者完全与其状态的变换隔离。 也完美符合迪米特法则,新增状态原有代码逻辑一丝都不用修改。 就是实现起来略复杂 核心: 用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题 结构: -Context环境类 ...
点滴心得,在此分享
我总感觉网上写的和我写的不是同一个模式似的… 我这个状态切换的流畅的一批,而且外部调用者完全与其状态的变换隔离。 也完美符合迪米特法则,新增状态原有代码逻辑一丝都不用修改。 就是实现起来略复杂 核心: 用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题 结构: -Context环境类 ...
模板方法模式是编程中经常用到到的模式。它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤。 核心:处理某个流程的代码已经都具备,但是其中某个节点的代码暂时不能确定。因此,可以将该节点的代码实现转移给子类完成。即:处理 ...
策略模式是一种对象行为型模式。一般对应于解决某一个问题的一个算法族,允许用户从该算法族中任选一个算法解决某一个问题,同时可以方便的更换算法或者增加新的算法。并且由客户端决定调用哪个算法。 本质: 分离算法,选择实现 –以下摘自 http://www.runoob.com 意图:定义一系列的算法,把它们一个 ...
其实本来可以直接通过加载 Spring 的 XML 配置文件来得到 ApplicationContext 对象,然后就可以直接通过 getBean() 方式来获取 Spring 管理的 Bean 实例。 但是现在都 8102 年了,还用这种方式未免太过不优雅。并且加载 XML 也不是我所喜欢的形式,我目前接触的项目都不用 XML 配置了。用 Annotations 来实现各大框架之 ...
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。 用上 Gradle 就像在新年换上了一条新的内裤一样,舒适。 优点无敌巨大,比 tm 煞笔 xml 好了一万倍。xml导入的一多,动不动几百上千行,从上看 ...
CyclicBarrier这个类的字面意思是循环屏障,跟CountDownLatch有些像,但不一样。关于CountDownLatch我在该爬虫项目中使用过,没有单独的文章进行讲解。 CyclicBarrier跟CountDownLatch的区别是: CountDownLatch只计数1次 CyclicBarrier可以通过reset()重置计数,实现更复杂的业务,也会在其等待完毕释放锁后重置计数。 ...
弹框宽高自适应,核心代码 var isMobile = { Android: function () { return navigator.userAgent.match(/Android/i) ? true : false; }, BlackBerry: function () { return navigator.userAgent.match(/BlackBerry/i) ? true : false; }, iOS: function () { return navi ...
今天爬数据真是爬的绝望,下午2点多开始写到下班,还主动加了一小时班,然后回到家又码到10点。终于爬出来了。 用java自带的 HttpURLConnection 模拟请求,返回的都是乱码。用Jsoup也是一样的。 用postman测了几下,结果一致。 应该是做了什么验证 ,导致代码伪装他的 ajax 请求是不会返回正确数据的。 ...
今天在公司做了个功能,需要点击某【快速设置】的不同选择,然后根据选中不同其底下功能的: 单选、复选、下拉列表按钮也会动态的进行变更,以便用户操作。 在使用 JQuery 时,自然就用了我平时最常使用的 attr() 方法,本来也没什么问题,点击事件无误,页面该显示的数据都显示了。 但是当我点击别的选项时,或 ...
标题是取了个 RedisTemplate 的名字,但是实际上不讲 RedisTemplate 。我也没咋用过。 主要是讲 StringRedisTemplate ,StringRedisTemplate 和 RedisTemplate 很相像,看资料是说保存进 Redis 的方式不同。 RedisTemplate 是使用 java 自己的序列化和反序列化进行保存,从 Redis 里看去是一堆乱码。 StringRedisTempl ...