前言 状态模式是一种行为模式,用于解决系统中复杂的对象状态转换以及各个状态下的封装等问题。状态模式是将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象的状态可以灵活多变。这样在客户端使用时无需关心对象的状态,可以实现自身的一致性处理。最近工作有些忙,更新博客慢了。还是要严格要求自己的 ...
分类:
编程语言 时间:
2018-09-29 01:16:13
阅读次数:
191
2018-09-22 16:16:13 要避免过长的方法,面向对象设计实际上是希望做到代码的责任分解。 状态模式 状态(State)模式,当一个对象的内在状态改变时允许改变其行为,这个对象看起来就像是改变了其类。状态模式主要解决的是当控制一个对象状态转换条件表示式过于复杂时的情况。把状态的判断逻辑转 ...
分类:
其他好文 时间:
2018-09-22 23:20:25
阅读次数:
186
序列化可以解决分布式系统节点间复杂对象传输的问题. 将对象状态转化为可存储或可传输的过程叫序列化, 而反序列化是将其还原成对象的过程. 几种序列化机制 JDK的序列化 Java默认的序列化要求实现 接口. 缺点: 1. 序列化的结果比较大, 占用字节多, 传输效率低 2. 仅Java实现, 不能跨语 ...
分类:
其他好文 时间:
2018-09-17 13:33:46
阅读次数:
160
1、创建异步对象 一般命名为xhr var xhr = new XMLHttpRequest(); 2、 设置请求行 open(请求方式,请求url) 1.get 需要在url后面拼接参数(如果有参数) 2.post请求不需要拼接参数 xhr.open("post","validate.php"); ...
分类:
Web程序 时间:
2018-09-10 21:19:06
阅读次数:
199
1、序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。2、什么情况下需要序列化 a ...
分类:
编程语言 时间:
2018-09-09 15:15:05
阅读次数:
150
3.1 单例模式的动机 对于一个软件系统的某些类而言,我们无须创建多个实例。举个大家都熟知的例子——Windows任务管理器,如图3-1所示,我们可以做一个这样的尝试,在Windows的“任务栏”的右键弹出菜单上多次点击“启动任务管理器”,看能否打开多个任务管理器窗口?如果你的桌面出现多个任务管理器 ...
分类:
其他好文 时间:
2018-09-04 13:55:32
阅读次数:
153
一:概念 二:应用场景 如果一个对象需要保存状态并可通过undo或rollback等操作恢复到以前的状态时,可以使用Memento模式。 三:动机 四:模式定义 五:代码讲解 (一)需要保存状态的对象 补充: (二)外部保存对象状态的类 (三)使用 六:类图(结构) 七:要点总结 (一)备忘录(Me ...
分类:
其他好文 时间:
2018-08-28 10:40:08
阅读次数:
231
前提:状态变化模式 典型模式 一:State状态模式 (一)概念 (二)动机 (三)代码讲解 1.原代码 2.改进代码,将基类抽出 (四)模式定义 (五)类图(结构) (六)要点总结 1.State模式将所有与一个特定状态相关的行为都放入一个State的子类对象中,在对象状态切换时, 切换相应的对象 ...
分类:
其他好文 时间:
2018-08-28 10:37:21
阅读次数:
163
C++语言学习(二十)——自定义内存管理一、统计类对象中成员变量的访问次数mutable是为了突破const函数的限制而设计的,mutable修饰的成员变量将永远处于可改变的状态。mutable成员变量破坏了只读对象的内部状态,而const成员函数保证只读对象的状态不变性,因此mutable成员变量无法保证只读对象状态的不变性。#include<iostream>usingnamesp
分类:
编程语言 时间:
2018-08-27 23:19:25
阅读次数:
232
第14章 重载运算符与类型转换 14.1 基本概念 只有当操作的含义对于用户来说清晰明了时才使用运算符。 选择作为成员还是非成员? 赋值、下标、调用和成员访问运算符必须是成员。 复合赋值运算符一般是成员。 改变对象状态或者与给定类型密切相关的,如递增、解引用通常是成员。 具有对称性的运算符可能转换任 ...
分类:
编程语言 时间:
2018-08-26 16:51:09
阅读次数:
202