仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 694|回复: 8
打印 上一主题 下一主题

[学习教程] 来看计划形式重构使用---Decorator形式

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:08:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
最后就是我对java的几点希望:首先是IDE工具,有人说java已经很好了,有jbuilder,eclipse,netBeans等等,但是我认为如果java想超越.net,那么他首先要解决的就是IDE工具的整合。
先复杂先容Decorator形式(粉饰形式)的内容和使用场景。
粉饰形式能够静态地给一个对象增加分外的职责。固然,使用子类承继也能够完成如许的功效,可是粉饰形式供应了一个更天真的体例。
由于承继会为范例引进的静态特质,使得这类扩大体例缺少天真性;
而且跟着子类的增加(扩大功效的增加),各类子类的组合(扩大功效的组合)会招致更多子类的膨胀。
上面是尺度Decorator形式的UML布局图:

[此图来自GOF《计划形式》一书]
如今分离我实践开辟的一个例子谈谈这个形式的重构使用。
仍是谁人SEO的项目,触及群登录、群发帖、群复兴等功效。为了客户挪用复杂和代码重用,
计划的时分利用三个类来封装这些功效:SiteLogin、SitePost、SiteReply。每一个站点的登录发帖回复功效都是挪用这三个类完成的。
刚入手下手计划时,只思索一样平常HTTP协定的GET、POST哀求,由于刚入手下手预研的时分,发明几个网站都是这样处置登录发帖复兴的。
跟着厥后,网站对象的不休增添,发明有上面的两个新需求:
1.有些站点接纳Content-Type为multipart/form-data的体例提交,而不是默许的application/x-www-form-urlencoded体例。
这两种体例,在httpclient3.1中处置办法是完整分歧的(固然4.0版本已兼并到一同了)。
2.有些站点是接纳https的体例提交的(增添分外的功效)。
3.有些网站是这两种扩大需求都存在。
固然,为了对付如许的变数,处置办法有良多,能够在代码中间接利用if语句来判别,也能够经由过程子类承继的体例加强如许的功效。
利用if语句的体例,处置如许对照年夜的需求,是不文雅的。子类承继的体例,在需求组应时会呈现子类数量爆炸式增加。
经由过程利用Decorator形式的重构,能够对照好的处置这类成绩。
最初计划的UML图以下(代码就不贴出来了):
 

手机用到的是用j2me所编出来的小程序。
金色的骷髅 该用户已被删除
沙发
发表于 2015-1-20 14:54:22 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
老尸 该用户已被删除
板凳
发表于 2015-1-25 09:40:23 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
乐观 该用户已被删除
地板
发表于 2015-2-2 18:29:59 来自手机 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
小妖女 该用户已被删除
5#
发表于 2015-2-8 04:14:20 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
只想知道 该用户已被删除
6#
发表于 2015-2-24 04:04:56 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
冷月葬花魂 该用户已被删除
7#
 楼主| 发表于 2015-3-7 10:51:43 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
第二个灵魂 该用户已被删除
8#
发表于 2015-3-15 01:00:05 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
活着的死人 该用户已被删除
9#
发表于 2015-3-21 15:28:13 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 05:23

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表