摘要: 状态模式:当一个对象的内在状态改变时允许其改变行为,这个对象看起来像是改变了其类。 状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。 状态模式的好处是将与特定状态相关的行为局部化,并且将不同状态的行为 阅读全文
posted @ 2018-08-21 16:41 以前、以后 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 一、概述: 在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。需要说明的是,这些操作的时间复杂度为O(1),即常量时间内完成次操作。Set可包含的最大元素数量是4294967295。 和List类 阅读全文
posted @ 2018-08-21 10:02 以前、以后 阅读(662) 评论(0) 推荐(0) 编辑
摘要: 1 //测试set数据类型 2 /** 3 * 在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。需要说明的是,这些操作的时间复杂度为O(1),即常量时间内完成次操作。Set可包含的最大元素数量是4294967295。 4 * 和List类... 阅读全文
posted @ 2018-08-21 09:58 以前、以后 阅读(3805) 评论(0) 推荐(0) 编辑
摘要: 观察者模式又叫发布-订阅模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。 观察者模式的特点:将一个系统分割成一系列相互协作的类有一个很不好的副作用,那就是需要维护相关对象间的一致性。我们不 阅读全文
posted @ 2018-08-20 11:03 以前、以后 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 建造者模式:将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式,又叫生成器模式。建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。如果我们用了建造者模式,那么用户就只需指定需要建造的类就可以得到它们 阅读全文
posted @ 2018-08-19 09:56 以前、以后 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 何时使用外观模式? 这要分三个阶段来说,首先,在设计初期阶段,应该要有意思的将不同的两个层分离,比如经典的三层架构,就需要考虑在数据访问层和业务逻辑层、业务逻辑层和表示层的层与层之间建立 阅读全文
posted @ 2018-08-19 00:07 以前、以后 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 迪米特法则:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。 迪米特法则首先强调的前提是在类的结构设计上,每一个类都应当尽量降低成员的访问权限,也就是说,一个类包装好自己的private状态,不需要让别的 阅读全文
posted @ 2018-08-18 16:17 以前、以后 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 模板方法:当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理。 模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板方法模式 阅读全文
posted @ 2018-08-18 15:48 以前、以后 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 浅复制: 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象。 如果字段是值类型的,则对该字段执行逐位复制,如果字段是引用类型,则复制引用,不复制引用的对象。因此,原始句柄及其复本引 阅读全文
posted @ 2018-08-17 11:14 以前、以后 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 一、概述: 我们可以将Redis中的Hashes类型看成具有String Key和String Value的map容器。所以该类型非常适合于存储值对象的信息。如Username、Password和Age等。如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。每一个Hash可以存储 阅读全文
posted @ 2018-08-17 07:25 以前、以后 阅读(505) 评论(0) 推荐(0) 编辑