|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
令人可喜的是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里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。 |
|