打赏

02 2019 档案

摘要:前言 总的结论就是:不推荐使用JDK自带的观察者API,而是自定义实现,但是可以借鉴其好的思想。 java.util.Observer 接口源码分析 该接口十分简单,是各个观察者需要实现的接口 package java.util; public interface Observer { void u 阅读全文
posted @ 2019-02-10 21:10 dashuai的博客 阅读(783) 评论(0) 推荐(0) 编辑
摘要:前言 这是一个原理非常重要,写法很常见的一个模式,值得深入理解和总结一下 可以想 zookeeper 等,有时系统需要定时(可插拔)接收或者监听其他服务的动态,这类需求经常见到,那么观察者模式就是做这个的: 一个软件系统里面包含了各种对象,就像一片欣欣向荣的森林充满了各种生物一样。在一片森林中,各种 阅读全文
posted @ 2019-02-10 17:51 dashuai的博客 阅读(1766) 评论(0) 推荐(0) 编辑
摘要:前言 外观模式也叫门面模式,英文是 facade。这是很常见的一种设计模式,它比如 JDK 中的 Socket 接口就应用了外观模式,参考:门面模式的典型应用 Socket 和 Http(post,get)、TCP/IP 协议的关系总结 外观模式也非常简单,它提供了一个统一的对外的高层次接口,用来访 阅读全文
posted @ 2019-02-10 17:02 dashuai的博客 阅读(246) 评论(0) 推荐(0) 编辑
摘要:前言 中介者模式,感觉也没什么好说的,就是字面意思:对复杂对象之间进行管理,但是这个管理是双向的,既可以接受反馈,也能发出指令,实现对象之间联系的解耦合,是对象的行为型模式。故叫做中介者,或者调停者模式。 简单的理解,就是可以把一对多的复杂对象关系转为一对一的简单关系。 实现代码——简易聊天室案例 阅读全文
posted @ 2019-02-09 17:02 dashuai的博客 阅读(1010) 评论(0) 推荐(0) 编辑
摘要:前言 适配器模式的定义很简单,就是做一个中间转换,类似港版的 iPad,iPhone 等电源插头,需要一个转换器,才能使用大陆的插座。 直接上代码,很简单,不多总结了。 类的适配器 被适配的类,可以看成是一个旧系统里的稳定的类 public class Adaptee { // 被适配的类 publ 阅读全文
posted @ 2019-02-08 20:45 dashuai的博客 阅读(1676) 评论(0) 推荐(0) 编辑
摘要:前言 个人感觉,该模式主要还是在多线程程序的设计中比较常用,尤其是一些异步任务执行的过程。但是本文还是打算先在单线程程序里总结它的用法,至于多线程环境中命令模式的用法,还是想在多线程的设计模式里重点总结。 实现思路 其实思路很简单,就是把方法的请求调用和具体执行过程分开,让客户端不知道该请求是如何、 阅读全文
posted @ 2019-02-06 21:49 dashuai的博客 阅读(682) 评论(0) 推荐(0) 编辑
摘要:前言 简单工厂模式,工厂方法模式,抽象工厂模式,这三个模式,当然还有单例模式,建造者模式等等,应该是日常工作中常用的,尤其是工厂模式,应该是最最常见的模式,对理解面向对象有重要的实际意义。 简单工厂模式 最简单,最直接,能满足大部分日常需求,不足是工厂类太简单——无法满足开闭原则,对多个产品的扩展不 阅读全文
posted @ 2019-02-06 13:49 dashuai的博客 阅读(7093) 评论(1) 推荐(1) 编辑
摘要:简单工厂模式严格来说不算一个设计模式——缺点 继续说之前提到的简单工厂模式,严格来说,这不算一个设计模式……而且在业务量比较多了之后,它也有诸多的隐患 1、由于工厂类集中了所有实例的创建逻辑,这就直接导致一旦这个工厂出了问题,所有的客户端都会受到牵连 2、由于简单工厂模式的产品基于一个共同的抽象类或 阅读全文
posted @ 2019-02-05 22:42 dashuai的博客 阅读(1387) 评论(0) 推荐(0) 编辑
摘要:除了 new 之外的创建对象的方法 通过 new 创建对象,会使得程序面向实现编程,先举个例子,某个果园里现在有两种水果,一种是苹果,一种是香蕉,有客户想采摘园子里的水果,要求用get()方法表示即可 一般情况下,最直接的写法为: public class Apple { public void g 阅读全文
posted @ 2019-02-05 22:41 dashuai的博客 阅读(3768) 评论(0) 推荐(1) 编辑
摘要:前言 如下是之前总结的 C++ 版的;软件开发常用设计模式—单例模式总结(c++版),对比发现 Java 实现的单例模式和 C++ 的在线程安全上还是有些区别的。 概念不多说,没意思,我自己总结就是: 有这样一个类,该类在生命周期内有且只能有一个实例,该类必须自己创建自己的这个唯一实例,该类必须给所 阅读全文
posted @ 2019-02-04 11:11 dashuai的博客 阅读(1270) 评论(0) 推荐(0) 编辑
摘要:前言 装饰模式顾名思义就是在不改变原对象的前提下,将新功能优雅的附加(装饰)到该对象上,可以实现对复合算法(策略)的优雅封装、对需要协作的算法(策略)进行有机组合。 装饰模式和策略模式用法类似,但是也有明显区别——策略模式运行时只能运行一个算法,且其各个算法(算法族)之间必须相互独立,不能有联系,装 阅读全文
posted @ 2019-02-02 00:57 dashuai的博客 阅读(709) 评论(0) 推荐(0) 编辑
摘要:前言 Java允许我们在内存中创建可复用的Java对象,但一般情况下,这些对象的生命周期不会比JVM的生命周期更长。但在现实应用中,可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象 Java对象序列化就能够帮助我们实现该功能。使用Java对象序列化,在保存对象时 阅读全文
posted @ 2019-02-01 21:48 dashuai的博客 阅读(17208) 评论(1) 推荐(1) 编辑

Flag Counter欢迎关注微信公众号
点击右上角即可分享
微信分享提示