PO(Persistant
Object):持久对象,可以看成是与数据库中的表相映射的 java 对象。最简单的 PO
就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合。PO 中应该不包含任何对数据库的操作。
BO(Business
Object):业务对象,封装业务逻辑的 java 对象。通过调用 DAO 方法,结合PO,VO
进行业务操作。
VO(Value
Object):值对象。通常用于业务层之间的数据传递,和 PO
一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这要根据业务的需要来定。个人觉得同
DTO(数据传输对象),在 web 上传递。
DAO(Data Access
Object):数据访问对象,此对象用于访问数据库。通常和 PO 结合使用,DAO
中包含了各种数据库的操作方法。通过它的方法,结合 PO 对数据库进行相关的操作。
POJO(Plain Ordinary Java
Object):简单无规则 java 对象。个人觉得它和其他不是一个
无论是哪种服务器端技术都能够很轻松地应用 XML,因为 XML 完全是一个基于文本的协议。像
XML
这样基于文本的协议的缺点是额外的数据抽象层的编写与维护工作相对很沉重。此外,如果数据需要序列化和反序列化,那么这个数据抽象层在客户端和服务器端都会占用很多资源。
Flash Player
可以支持另外一种传输协议,这个协议能够缓解由基于文本的协议导致的传输瓶颈问题,能够帮助开发者以更简单的方式与服务器交互。这就是
AMF(Action Message Format)。它是一个二进制格式的协议,能够替代用于传输XML的基于文本的协议而在 HTTP
协议之上交换数据。采用 AMF
的应用中,数据抽象层完全可以省去,客户与服务器间的通讯效率比传统的应用基于文本的协议传输要高得多。
BlazeDS 中包含了 AMF 的 Java 实现,可以用来与服务器端的 Java
对象远程交互,也可以用来在客户端之间传递消息。开发人员可以借助 BlazeDS 的远程技术简单地调用 POJO、Spring
服务或EJB方法。开发人员可以通过其消息系统从客户端向服务器端发送消息,当然也可从服务器端向客户端发送消息。
BlazeDS 也可以与
今天我们来制作 Flash 聊天室,学习使用 Socket 类,用 Java 作后台,开发一个
C / S 架构的多人聊天程序。首先,设计用户界面。
一、界面设计
界面的元件全部使用 Flash CS3 自带的组件:
首先,放入 TextInput 组件(实例名 input_txt),作为用户输入;
再放入 Button 组件(实例名 submit_btn),用于提交输入的信息;
最后放入 TextArea 组件(实例名 output_txt),显示聊天信息。
二、组件参数初始化
由于客户端代码不是很多,我们这次就写在动作帧上:
// ************ 组件参数初始化 ************
今天我们制作的音乐播放器,主要实现以下功能:
1、选歌 —— 使用 ComboBox 组件,读取外部 xml 歌曲列表;
2、音量控制 —— 使用 Slider 组件;
3、显示声音波形 —— 用 AS 3 提供的 SoundMixer 类实现。
下面开始吧,先来制作用户界面。
一、界面设计
新建 flash
文件,在舞台上放入两个组件:ComboBox(实例名:music_list),Slider(实例名
在 AS2 中通常使用 LoadVars 类与 Web
服务器交换数据:
var msg:LoadVars = new LoadVars();
var msgSent:LoadVars = new LoadVars();
msg.var1 = 'one';
msg.var2 = 'two';
msgSent.onLoad = function(success:Boolean):Void {
if (success) {
trace('Message sent.');
}
else {
trace('Message
failed.');
}
};
msg.sendAndLoad('http://127.0.0.1:8080/communicate_flash/index.jsp',
msgSent);
===================================================================================
在 AS3 中,等同于:
var scriptRequest:URLRequest = new
URLRequest('http://127.0.0.1:8080/communicate_flash/index.jsp');
var scriptLoader:URLLoader = new URLLoader();
我最开始玩的是红色警戒,那时候一般只造一个兵营和一个机械厂,然后疯狂点兵,等着1个1个慢慢造出来(我只打电脑)。后来接触星际了,开始非常的不习惯,因为它没有一个固定的界面,可以造各种单位,而是要先选取一个建筑,然后在屏幕右下角选兵来造。
后来又发现,星际里,都是要先选一个东西,然后右下角出现这个东西可以进行的操作,习惯了之后,觉得星际这样的设计更加合理,更加符合世界的本来面貌。
恰好那时学了C++
这门课,一直不太明白面向对象程序设计是什么意思,和面向过程有什么区别,突然我想到了星际,这不就是面向对象程序设计的经典案例吗?
让我们来看看 C++ 和星际的共同点。
面向对象程序设计的核心概念就是类和对象,星际里,一种单位就是一个类,这个单位的实例就是对象,比如 zealot
是个类,而游戏中你造出的一个 zealot 就是一个对象。
类有数据成员和成员函数,星际里的一个单位,也有属性和它的方法,还是以zealot为例,他的属性有血量、攻击力、盔甲、是否被辐射等等很多很多,他的方法有移动,攻击,hold等等,就是右下角里显示的。
8.面向对象程序设计
8.1
类和对象的概念
类:类是用来创建同一类型的对象的“模板”,在一个类中定义了该类对象所应具有的成员变量以及方法。
对象:对象是类的实例。
8.2 类之间的关系
系统中的类有那些关系:依赖、关联(聚合、合成)、泛化、实现。
1.依赖:对于外部类或对象的引用;
5.关联:关联暗示两个类在概念上位于相同的级别;
6.聚合:表示一种“拥有”关系,是两个类之间一种整体 / 局部的关系;
7.合成:表示一种更强“拥有”关系,就像人和腿的关系一样。组合而成的新对象对组成部分的内容分配和释放有绝对责任;
8.泛化:表现为继承 extends;
9.实现:表现为实现 implements。
5.
多态(Polymorphism)
5.1
多态的概念
面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。
多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)
实现多态的技术称为:动态绑定(dynamic
binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
多态的作用:消除类型之间的耦合关系。
现实中,关于多态的例子不胜枚举。比方说按下 F1 键这个动作,如果当前在 Flash
界面下弹出的就是 AS 3 的帮助文档;如果当前在 Word 下弹出的就是 Word 帮助;在 Windows 下弹出的就是
Windows 帮助和支持。同一个事件发生在不同的对象上会产生不同的结果。
下面是多态
Think in ActionScript
3.0
1.类的由来
1.1 C
语言中的结构体
这部分属于历史问题,与技术无关,了解历史可以让我们更好地把握现在和将来。C 语言中的结构体
struct 可以说是类的最原始的雏形。只有 int, float, char
这些基本数据类型是不够的,有时需要用不同的数据类型组合成一个有机的整体来使用。例如一个学生有学号和姓名就可以定义一个 Student
的结构体:
struct Student {
int id;
char[20] name;
} student;
main() {
// 可以使用“对象名.属性” 的方式来操作数据
student.id = 5;
student.name = “ZhangSan”;
}
1.2 从结构体到类的演化(C ——
C++)