仓酷云
标题:
发布一篇演变架构和告急计划: 使用可重用代码,第2部分 - 捕获习用形式 ...
[打印本页]
作者:
飘飘悠悠
时间:
2015-1-18 11:06
标题:
发布一篇演变架构和告急计划: 使用可重用代码,第2部分 - 捕获习用形式 ...
令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。
简介:在利用演变架构和告急计划前几期形貌的手艺发明代码中的告急计划以后,下一步您必要一种猎取和使用这些计划元素的办法。本文先容了两种用于猎取习用形式的办法:将形式作为APIs举行捕捉;利用元程序计划办法。
本系列的前几期次要存眷告急计划中不言而喻的第一步:发明习用形式。发明习用形式以后,您要用它做甚么?该成绩的谜底就是本期重点,本文属于由多个部分构成的系列文章的第二部分。第1部分—代码与计划的干系切磋—先容了一种概念的实际基本,这类概念就是软件中的计划真恰是指办理计划的全部源代码。一旦转换角度将一切代码当作实践计划,您能够入手下手思索在言语级别牢固计划元素,而非仅在图表局限和其他计划帮助项目中。在这里我要讲一下在开掘出代码中的可重用计划以后应当做些什么,先容猎取这些形式所用的办法。我起首将它们作为复杂APIs猎取,然后形貌一种可将这些元素与其他代码辨别开来的猎取办法。
将形式作为APIs予以猎取
捕获习用形式最复杂的体例就是将它们作为本身的API或框架予以提取。您利用的年夜多半开源框架都是与办理特定成绩相干的习用形式集。比方,Web框架包括您构建Web使用程序所需的一切API元素,它们事后从其他运转的Web使用程序中取得。比方,Spring是用于处置依附项注进和构建的手艺习用模式汇合,Hibernate为对象-干系映照封装形式。
固然,您能够在您的代码中做一样的事情。这是今朝为止最复杂的办法,由于您改动的仅是代码的结构(一般经由过程在您选择的IDE中重构撑持)。这类办法的大批示例拜见第1部分和“言语、表达性与计划:第2部分”,该部分切磋了计划形式。
制止布局反复
APIs偶然会增进布局反复。利用APIs会很烦人,由于您必需频仍利用主机对象来挪用API。上面来看一下清单1中的示例(个中挪用一个与有轨电车相干的API):
清单1.会见CarAPI
Car2 car = new CarImpl();
MarketingDescription desc = new MarketingDescriptionImpl();
desc.setType("Box");
desc.setSubType("Insulated");
desc.setAttribute("length", "50.5");
desc.setAttribute("ladder", "yes");
desc.setAttribute("lining type", "cork");
car.setDescription(desc);
强迫用户输出主机对象(desc)会给代码增添不用要的搅扰。年夜部分APIs包含主机对象并将其作为API的出口点,您必需照顾它们才干会见API。
今朝有几个办法可缓减APIs中的这个成绩。个中一种办法利用一个不为人知的Java语法,它同意您经由过程一个匿名外部类的感化域界定“照顾”主机对象,如清单2所示:
清单2.利用一个匿名外部类照顾主机对象
MarketingDescription desc = new MarketingDescriptionImpl() {{
setType("Box");
setSubType("Insulated");
setAttribute("length", "50.5");
setAttribute("ladder", "yes");
setAttribute("lining type", "cork");
}};
<p>
ruby里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。
作者:
兰色精灵
时间:
2015-1-20 14:35
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
作者:
山那边是海
时间:
2015-1-21 15:22
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者:
莫相离
时间:
2015-1-22 18:42
是一种突破用户端机器环境和CPU
作者:
分手快乐
时间:
2015-1-31 07:54
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
作者:
透明
时间:
2015-2-1 19:50
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
作者:
简单生活
时间:
2015-2-7 14:32
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者:
活着的死人
时间:
2015-2-22 06:54
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者:
灵魂腐蚀
时间:
2015-3-6 23:19
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者:
因胸联盟
时间:
2015-3-13 22:31
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
作者:
若相依
时间:
2015-3-20 20:48
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2