摘要:
简史 早期的计算机中不包含操作系统,从头至尾都只执行一个程序,并且这个程序能访问计算机所有资源。随着计算机发展,操作系统的出现,使得计算机可以同时运行多个程序,并且每程序都在单独的进程内运行。为什么要这么做呢?主要基于以下原因: 1.资源利用率 程序在等待时计算机可以执行另一个程序,同一个资源可以被 阅读全文
摘要:
所谓“观察”,是为观而察之。就像医院的重症病房,医生不能时时刻刻看着病人,就需要护士或者家属全程看护,一有情况就通知医生。其中,病人是被观察者、护士或家属是观察者。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。这个主题对象在状态发生改变时,会通知所有观察者对象,使它们 阅读全文
摘要:
阿里巴巴宣布捐赠RocketMQ到Apache软件基金会孵化项目,最近闲下来便去部署了一个试验版本玩玩。 至于RockeMQ是什么,原理架构什么的这里就不赘述了,这里只记录安装过程。 一、系统环境 service操作系统:centOS7 64位虚拟机JDK:1.7以上client操作系统:Windo 阅读全文
摘要:
“复制-粘贴”应该是每个程序员最经常干的事情了。那为什么不去一个个敲出来?因为麻烦啊。如果把敲字看做创建对象时构造函数里干的事情,那“复制-粘贴”就能算是原型模式了。 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种 阅读全文
摘要:
无论是修一段路,或是盖一间房,就算是学习知识都是循序渐进的。先打基础,再做提高,最后成路、成房、成人。如果一上来就铺石子不打路基,直接砌墙不打房基,直接看书而不识字,想必一切都不会好吧。这其中就有了建造者模式的概念了。 建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不 阅读全文
摘要:
工厂方法模式是简单工厂的抽象与扩展,如果单一的产品不能满足设计与需求,是否有其他模式对工厂方法进行再次扩展呢?所以就有了抽象工厂。 定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。 UML类图如下 从类图可以看出,产品1和产品2是两个抽象产品,为什么要是抽象的呢?因为它们 阅读全文
摘要:
工厂模式三姐妹中,简单工厂无疑是最简单的。无论多简单的方法,放对了位置便是最佳实现,所以简单工厂在特定情况下还是有应用市场的。 定义:简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定 阅读全文
摘要:
再简单工厂模式中,如果要添加新的产品,为了配合使用就必须修改工厂类,无疑这就破坏了”开放-闭合“原则。但是这也是简单工厂的优点,简单工厂类包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,取出来客户端对具体产品的依赖。为了解耦合和符合”开放-闭合“原则,工厂模式来了。 定义:定义一个用于 阅读全文
摘要:
何为单例?哪些类适合做成单例?做成单例的好处又是什么呢?如何实现单例? 概念 何为单例? 定义:单例模式(Singleton)是保证一个类仅有一个实例并提供一个访问它的全局访问点。 定义中就能看到,要保证一个类仅有一个实例化的对象。要如何保证呢?最好的办法就是让它自身负责保存它唯一的实例,而且这个类 阅读全文
摘要:
上篇说到设计模式的精髓是原则和思想,这篇文章就详细介绍一下设计模式的原则。 一、单一职责原则 定义:就一个类而言,应该仅有一个引起它变化的原因。 人都说,这个原则太普通了,和名字一样简单。不是说大道至简嘛,这个原则在程序设计中所占的份量还是很重的。 一个类涉及的多项功能,如果其中一个功能发生改变需要 阅读全文