不悔路

BlogJava 首页 新随笔 联系 聚合 管理
  25 Posts :: 1 Stories :: 30 Comments :: 0 Trackbacks

学编程已经三四年了,但是一直都没有写过相关的文章。今天,终于憋出一篇来。一来作为总结,二来可以给师弟师妹作为参考。
我读大一的时候,老师教会了我if,while,for,等关键词之后,我就开始自学了。大一的时候教的是C语言,从此之后,我迷上了C语言。因为C能实现我的想法。接下来我自学了java,jsp。当然,自学走了很多的弯路,直到现在我很后悔。~~~~(>_<)~~~~ 。交了学费不在老师那里学点东西的人的确很SB。
我现在主要说说我学java的经验。学东西,要知道学来做什么吗?java干什么用呢?当然不是生孩子用的,也不是下酒菜。java有两个方向,一个是做网站,另外一个是做手机软件。你选择那个方向呢?
我选择是做网站,虽然我一度鄙视做网站的(但我现在连鄙视的行业也进不去)。但选择了java,再选别的就没什么必要,我是这样想的,肉吃了一半就丢掉吗?多可惜。
java是完全面向对象的语言,面向对象主要讲的是封装,继承,多态。但是老师对于这些至关重要的知识只用了一节课,我不想说,老师很SB,或者是她不知道如何使用这些特性。我现在告诉读者,这些特性会让你很爽。
我记得,我学java的时候,我用swing组件做了一个同学录的软件。当时的心情是自豪的,现在看里是傻B呼呼。首先,swing已经是一门过时的技术,过时的东西是被历史淘汰了,我却当做宝贝。是多么的无知。
我现在分析我那个软件。我当然写的同学录只有一个类。一个主类,类里再套类,看得我头昏脑胀,改一点就得改好多,然后调试的时候就出现好多错误。遇到这样的问题谁都头痛。为什么出现这样的情况。因为只有一个类呀,所有的东西都放在一个类里,不乱才怪。就像一个箩筐里什么都放,当然乱了。这个时候,我们应该用到封装来改变代码的质量。
怎么做呢?
首先,界面和业务逻辑分开。对于界面,很多人都知道,但是业务逻辑有可能不明白的,我比喻一下。比如,同学录。你想看我的同学录,你就得知道我的登陆密码,你输入密码的时候,代码会校验密码,校验密码就是一个业务逻辑。界面和业务逻辑分开有什么好处?起码,代码分工分明。这些类负责界面,那些类负责业务逻辑。分工分明是有好处的。避免大家手忙脚乱做错事,还有谁出错了就找谁算账就行。
这样的话你的代码就得这样写了
class 界面
{
}
class 业务逻辑
{
}
这样总比
class 界面+业务逻辑
{
}
好管理吧。
这样的话,界面的一些按钮的位置改变了,对业务逻辑影响不大。这就是书上说的耦合度。

接着说业务逻辑。因为业务逻辑比较重要。
业务逻辑这么写呢?我以前是这样写的,比如说,我想我的同学了,我想查一下她的电话然后call她。我很懒,不想翻电话部,我就用同学录软件查询我的同学录,那么软件就得有查询的功能。代码是这样的
class select同学name
{
}
删除
class delete同学
{
}
但是,想用我的同学录你得知道密码,你就输入密码。那么我的代码是
class select密码
{
}
这样写下去,我感觉很无头绪。这个时候就很适合用接口。什么是接口,我当时学java的时候,我也在想什么是接口,不就是一个interface吗?
基本语法是这样的
interface 接口名
{
 抽象方法1;
 抽象方法2;
}

当时我琢磨了很长时间,想不到interface怎么个好用?
现在我明白了。
你查询密码,查询同学的电话,或者是更新同学的电话。你就得查询数据库吧。对于数据的操作不就是select,delete,update吗?
那么这样的话,我们可以这样写
public interface DataBase
{
 // 增加操作
 public void insert(name) throws Exception ;
 // 修改操作
 public void update(name) throws Exception ;
 // 删除操作
 public void delete(String id) throws Exception ;
 // 按ID查询操作
 public Person queryById(String id) throws Exception ;
 // 查询全部
 public List queryAll() throws Exception ;
 // 模糊查询
 public List queryByLike(String guanjianci) throws Exception ;
}
然后你就可以在各个功能类里implements DataBase了。什么是接口,就是规定你按照上面的格式去做,有规定了,就好办事,对吗?这个最好看看简单工厂设计模式.

 


接下来说JSP吧
学完java就该学JSP了。我们发的是电子工业出版社出版的《JSP动态网页编程技术》第七章说的是JSP操作数据库。用的是JDBC-ODBC桥,如果堂哥没有这样提醒我的话,我现在可能还在配置数据源-----java的优势是跨平台,你这样连接数据库的话,就和操作系统绑定在一起了。于是我在网上查了,用JDBC驱动包。因为这样的话速度快,如果是配置connection poll(连接池)性能就更加高了,好的东西我们为什么不用呢?第九章是servlet编程技术,但是老师没有讲,我忘记什么理由了。好像是用得不多。但是在接下来的自学过程中。我知道servlet用得很多,而且很重要。包括MVC设计模式和struts框架。不懂servelet就不懂java。servlet有很多精彩的地方。我这不是教程,所以就不详细说servlet的语法。但是servlet的路径问题得好好研究。对于servlet就学会配置web.xml和获取,跳转就可以了。
但是你要是有很多servlet的话。你就得配置很多,这样的话,web.xml的文件就显得很臃肿,有没有更高的解决方法?有的。<url-pattern>*.do</url-pattern>,你可以试一下,不管你什么请求,你请求的路径是什么,只要.do结尾的都能找到那个servlet。这就是从多个名称映射同一个servlet。
servlet可以用request.getRequestURL()获取路径,然后用字符串截取函数substring()截取请求后面的路径。然后根据请求的路径跳转到哪个类。当然,跳转到哪个类,最好的解决方法是在.xml中配置。避免了大量的if语句。而且很灵活。所以,在struts1.x中有个默认的配置文件struts-config.xml配置映射。在struts中,actionServlet就做上面的截取路径的动作。然后由struts-config.xml提供的映射分发到Action。对于struts我不易多说,因为我现在在学习。我感觉它是个好东西。很经典,很多设计模式都在里面找到。
我愿意和你们一起学习struts。

posted on 2009-01-07 17:53 小弟 阅读(254) 评论(2)  编辑  收藏

评论

# re: 涉及JSP的经验 2009-01-08 00:44 liudecai_zan@126.com
互相学习,互相质疑。只谈技术,不谈人品。
1.java的发展方向主要是javaEE,javaMe,javaSe三个方向,网站开发是javaEE开发的一部分,手机软件是javaMe的一部分
2.javaSe是基础,然后向javaEE和javaMe两个方向发展。
3.Servlet和JSP是javaEE开发的核心技术  回复  更多评论
  

# re: 涉及JSP的经验 2009-01-08 13:31 Woody
接口是为了实现多态的,这点很重要。  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: