
你查一下“串行化CArchive对象”。又称“序列化”。一般用户对象从CObject派生出来。
从档案文件中读取该对象或向档案文件中写入该对象。必须为希望串行化的每个类覆盖Serialize。被覆盖的Serialize首先必须调用基类的Serialize函数。
在类的声明中必须使用DECLARE_SERIAL宏,并且在类的执行过程中也必须使用IMPLEMENT_SERIAL宏。
使用CArchive::IsLoading或CArchive::IsStoring函数,用于决定是否装载或存储了档案文件。
通过CArchive::ReadObject和CArchive::WriteObject来调用Serialize函数。这些函数与CArchive插入 *** 作符()相关联。
如果要了解有关串行化的例子,请参阅联机文档“Visual C++程序员指南” 中的“串行化(对象永久化)”。
序列化
1 该类需要从CObject类派生(可以是间接派生);
2 在类中中进行DECLARE_SERIAL宏定义;
3 类存在有缺省的构造函数;
4 类中实现了Serialize()函数,并且在其中调用基类的序列化函数;
5 使用IMPLEMENT_SERIAL宏指明类名及版本号;
编辑本段
作用局限
序列化简化了对象的保存和载入,为对象提供了持久性。但是,序列化本身仍具有一定的局限性。由于序列化一次从文件中载入所有对象,因此,它不适合于大文件编辑器和数据库。对于数据库和大文件编辑器,它们每次只是从文件中读入一部分。此时,就不应该采用文档的序列化机制来直接读取和保存文件了。另外,使用外部文件格式(预先定义的文件格式而不是本应用程序定义的文件格式)的程序一般也不使用文档的序列化。
示例
请参阅ObList::CObList,了解所有CObject示例中使用的CAge类。
// example for CObject::Serialize
void CFileSerializeDoc::Serialize(CArchive& ar){
if (arIsStoring()){
ar << m_sizeDoc; //m_sizeDoc信息序列化到ar
}else{
ar >> m_sizeDoc; //ar序列化到m_sizeDoc
}
m_strokeListSerialize(ar);//序列化m_strokeList
}
按顺序学这些:流程控制语句、类和对象、接口和抽象类、多态、封装、继承、数组、集合、IO编程、线程,再学JavaWeb,又习惯称Java企业级应用(JavaEE),JavaEE的基础是servlet,学好servlet之后,就去学jsp,jsp的实质就是servlet,再学学MVC概念,如果想做点简单的应用,用servlet和jsp就足够了!在学完servlet和jsp之后,去学习JavaEE提供的框架,spring(容器)、struts(控制action)、Ibatis和hibernate(这两个都是持久层框架,和数据库打交道的),这些学好之后,学oracle,mysql数据库,后面可以自学一些UI上的东西,如ext,
三层架构一方面是为了解决应用程序中代码之间调用复杂,代码职责不清的问题;通过各层之间定义接口的形式,并将接口与实现分离,可以很容易的用不同的实现来替换原有的实现,从而有效的降低层与层之间的依赖关系。这种方式不仅有利于整个团队理解整个应用架构,降低后期维护成本,同时也有利于制定整个应用程序架构的标准。
另一方面三层架构的出现从某种程度上解决了企业内部如果有效的根据技能调配技术人员,提高生产效率的问题,在大环境下,有效的分层能使不同职责的人各司其职,聚焦于个人专业技能的发展与培养上。
三层架构的出现不仅标准化了复杂系统的逻辑划分,更帮助企业解决如果有效的形成技术人员组织机构的问题,因此在很长的一段时间内,它一直是软件架构设计的经典模式之一。
优势
层次清晰,每个层次都提供了接口定义
很容易用新的实现替换原来的层次实现。例如对sql进行性能优化,并不会影响其他层的代码结构。有利于后期维护。
有利于实现切面编程,减轻业务的复杂程度,加快编码效率。
每个层次的定位明晰,业务处理的内容明确。依据层次,可以划分不同的分工。开发人员可以只关注整个结构的其中某一层。
接口定义也提供了良好的可扩展性。例如数据库从mysql切换到oracle,只需要通过配置来切换。
降低了代码之间,层与层的依赖关系
复用性:利于各层代码逻辑的复用
安全性:接口设计需要符合对扩展开发,对修改关闭的原则,增强了系统的安全性
各层次职责
表示层:是应用的用户接口部分,担负着用户与应用的对话,交互功能。
业务逻辑层:主要是业务逻辑的处理, *** 作,是系统功能核心。
数据访问层:也称为是数据持久层,北京电脑培训发现其功能主要是负责数据库的访问。
以上就是关于优秀的程序员该如何更上一层楼全部的内容,包括:优秀的程序员该如何更上一层楼、作为一个JAVA程序员, 应该掌握哪些知识, 目前, 比较流行的java开发框架有哪些,、java开发项目,目录结构大家一般怎么划分等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)