工作已经整整两年两个月,然而仍让人感觉时间短暂,眨眼即过。
我又走上了寻找工作的道路,离开一个熟悉的环境去寻找另外一个陌生的环境。
笔试、面试似乎要回到大四时期为工作而奔波的套路。
两年自省,我究竟学到了什么,我究竟能否将这条路走的又深又远?
天行健,君子以自强不息。
----------------------------------------我就以这句化来激励一下自己吧。
1.对象和类
所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。
所谓类是具备某些共同特征的实体的集合,它是一种抽象的概念,用程序设计的语言来说,类是一种抽象的数据类型,它是对所具有相同特征实体的抽象。
关系:类是为了描述对象的属性和方法的,不同的对象可以抽象为一定的类。
对象有2个特点,一个是属性,一个是方法。
描述对象的静态状态的,就是属性
描述对象的动作状态的,就是方法,也成为函数。
2.封装
只要有足够的方法,就没必要直接去操作对象属性,只要调用这些方法就可以实现要完成的任务,这种现象称为封装
通过对象方法对其属性的操作把对象属性封装在一个对象内部,对象与外界打交道全部通过其自身的方法来实现,有效的把对象属性隐藏在对象内部。
3.涉及企业的系统设计,免不了要跟J2ee平台、MVC模型等等框架设计、构架设计打上交道,虽然现在接触很多,但理解概念是很有用的。
MVC是什么,mvc是一种软件设计模式,最近几年被推荐为Sun公司J2EE平台的设计模式。MVC如何工作
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
视图
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services.
如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。
在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
模型
模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。
例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库。
被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。
由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器
控制器接受用户的输入并调用模型和视图去完成用户的需求。
所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。
它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。
现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。
优点:
1.将数据层代码和像HTML这样的表示层代码分离开来
2.多个视图能共享一个模型,最大化的重用你的代码
3.模型是自包含的,并且与控制器和视图相分离,所以很容易改变你的应用程序的数据层和业务规则,数据库可移植性大大加强
4.运用MVC的应用程序的三个部件是相互对立,改变其中一个不会影响其它两个,所以依据这种设计思想你能构造良好的松偶合的构件。
MVC的缺点
1.MVC的缺点是由于它没有明确的定义,所以完全理解MVC并不是很容易。
2.同时由于模型和视图要严格的分离,这样也给调试应用程序到来了一定的困难。每个构件在使用之前都需要经过彻底的测试。
3.由于我们将一个应用程序分成了三个部件,所以使用MVC同时也意味着你将要管理比以前更多的文件
4.MVC并不适合小型甚至中等规模的应用程序,花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。
Java开发Web Application有几种符合MVC设计模式的开发方式。
1:Jsp+Servlet+JavaBean(EJB)
2:Jsp+JavaBean(Controller)+JavaBean(EJB)(Model)
3:TDK(Turbine,Velocity...)
4:Xsp
5:Jsp+Struts+JavaBean(EJB)
附:
三层架构即“表现层”,“业务层”,“持久化层”。
表现层实现的代表作品是Struts框架,业务层实现的代表作品是Spring,持久层实现的代表作品是Hibernate。
举个例子。
持久层从持久库中取出-10。
业务层按照一定的逻辑(这里我们举例取温度的逻辑)翻译成-10摄氏度。
表示层显现给用户“哎呀,今天好冷!”。
层就相当于一个黑盒子,我们不用知道它内部怎么实现,只需要知道如何去调用它就行了。
每层只与上下相邻的两层打交道。当一层内部由于技术变迁发生变化时,只要接口不变,其他层不用做任何改变。
分层之后灵活性提高,也便于团队分工开发。