Strategy factory

摘要: Strategy: 问题:针对特定任务存在不同的算法,但客户端可以根据动态上下文在运行时切换算法。 解决方案:为算法创建一个接口,并为算法的每个变体实现一个类 优点: - 易于扩展新算法实现 - 将算法与客户端上下文分离 factory 阅读全文
posted @ 2018-06-23 21:08 hitxgl 阅读(247) 评论(0) 推荐(0) 编辑

抽象数据类型(ADT)和面向对象编程(OOP)3.5 ADT和OOP中的等价性

摘要: instancsof动态类型检查。除了在判断是否与应生成的类型一样外都不使用,getClass()同样 ==引用等价性 equals()对象等价性 基本数据类型使用 在自定义ADT时需要重写Object的equals() 对象类型使用 a.equals(null) returns false equ 阅读全文
posted @ 2018-06-23 19:43 hitxgl 阅读(317) 评论(0) 推荐(0) 编辑

抽象数据类型(ADT)和面向对象编程(OOP)3.4 面向对象的编程

摘要: 一个对象是一组状态和行为 状态 : 包含在对象中的数据。 - 在Java中,这些是对象的字段(字段) 行为 : 对象支持的行为 - 在Java中,这些被称为方法 - 方法只是面向对象的函数 - 调用方法=调用函数 每个对象都有一个类 - 一个类定义方法和字段 - 方法和字段统称为成员 类定义了类型和 阅读全文
posted @ 2018-06-23 16:26 hitxgl 阅读(164) 评论(0) 推荐(0) 编辑

抽象数据类型(ADT)和面向对象编程(OOP)3.3 抽象数据类型

摘要: 抽象类型的新颖性和不同之处在于对操作的关注:类型的用户不需要担心它的值如何实际存储 类型无论是内置的还是用户定义的,都可以分类为可变或不可变 可变类型的对象可以被改变 String是不可变的,因为它的操作创建了新的String对象而不是改变现有的对象 有时一种类型将以两种形式提供,一种可变形式和一种 阅读全文
posted @ 2018-06-23 11:20 hitxgl 阅读(191) 评论(0) 推荐(0) 编辑

抽象数据类型(ADT)和面向对象编程(OOP)3.2规约

摘要: API:application programming interface,是Java自己提供的标准类库; 查API就是让你去看Java自己实现的函数,查看它怎样调用,要传什么参数等; 为什么要写我们的想法:自己不能记住,其他阅读的人更改程序的人也不知道。 与电脑沟通,先说服编译器你的程序是合理的 阅读全文
posted @ 2018-06-22 21:56 hitxgl 阅读(211) 评论(0) 推荐(0) 编辑

抽象数据类型(ADT)和面向对象编程(OOP)3.1数据类型和类型检查

摘要: 数据类型在编程语言中: 类型是一组值以及可以对这些值进行操作 变量 存储一个特定类型值的命名位置 基本数据类型: int 限制在±2 ^ 31的范围内,或者大约为±20亿 long 2^63 boolean double char byte float short 在堆栈中只有使用时才存在 对象数据 阅读全文
posted @ 2018-06-22 16:43 hitxgl 阅读(681) 评论(0) 推荐(0) 编辑

软件构造 消息传递

摘要: 消息在两台计算机的进程之间传递 客户端/服务器设计模式:客户端发起通信,服务器接 收、处理、回复,重复此过程,客户端断开连接。服务器可同时处理多个客 户端,客户端也可同时连接多个服务器。 客户机和服务器可在不同的计算机上,也 可在一台计算机上。 IP地址:网络接口由IP地址标识。 IPv4地址是以四 阅读全文
posted @ 2018-06-19 21:52 hitxgl 阅读(119) 评论(0) 推荐(0) 编辑

软件构造 并发3(线程安全性)----锁定和同步

摘要: 同步:防止线程同时访问共享数据。 锁:是一种抽象,最多允许一个线程拥有它。 保持锁定是一条线程告诉其他线程的:我正在改变这 个东西,现在不要触摸它 两个操作:获取允许线程获取锁的所有权。 如果一个线程试图获取当前由另一个线程拥有的锁,它将阻塞,直到另一个线程释放该锁。 此时,它将与任何其他尝试获取锁 阅读全文
posted @ 2018-06-19 17:53 hitxgl 阅读(150) 评论(0) 推荐(0) 编辑

java文件读写类及其用法介绍

摘要: IO类图: 1. File类 1. File类 ①File类封装了对用户机器的文件系统进行操作的功能。例如,可以用File类获得文件上次修改的时间移动,或者对文件进行删除、重命名。 File类的主要方法有:getName(),getCanonicalFile(),lastModified(),isD 阅读全文
posted @ 2018-06-19 11:45 hitxgl 阅读(182) 评论(0) 推荐(1) 编辑

软件构造 并发3(线程安全性)

摘要: 线程安全:数据类型或静态方法在多线程中执行时,无论如何执行,不需调用者做额外的协作仍可以得到正确的行为。 行为正确意味着满足规格说明和保持不变性 不能在前置条件中对调用者增加时间性要求(在set()运行时不能调用get()) 例子:迭代器, 不是线程安全的。 迭代器的规范说,不能在迭代它的同时修改一 阅读全文
posted @ 2018-06-18 22:54 hitxgl 阅读(301) 评论(0) 推荐(0) 编辑