??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧美精品一区二区,国产51人人成人人人人爽色哟哟,欧美天堂影院http://www.aygfsteel.com/skywind/success.zh-cnFri, 04 Jul 2025 02:43:43 GMTFri, 04 Jul 2025 02:43:43 GMT60面向接口~程的好?/title><link>http://www.aygfsteel.com/skywind/archive/2011/06/02/351638.html</link><dc:creator>sky.wind</dc:creator><author>sky.wind</author><pubDate>Thu, 02 Jun 2011 15:04:00 GMT</pubDate><guid>http://www.aygfsteel.com/skywind/archive/2011/06/02/351638.html</guid><wfw:comment>http://www.aygfsteel.com/skywind/comments/351638.html</wfw:comment><comments>http://www.aygfsteel.com/skywind/archive/2011/06/02/351638.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/skywind/comments/commentRss/351638.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/skywind/services/trackbacks/351638.html</trackback:ping><description><![CDATA[<div>面向接口的编E正是java的优点,首先 用v来方便,l构清晰<br /> <br /> 在j2ee中的接口也就是类Q类与类之间的通信因ؓ接口而变的简单易?br /> <br /> 呵呵Q像J2EE中的API规范基本上都是接口,由各应用服务器来实现Q比如:WebSphere按照q个接口实现自己的,WebLogic也按照这个接 口实现自qQ作为开发者来说我们根本就不用ȝ谁是怎样实现的,只要按照J2EE的API<br /> 来写可以了Q根本用不着导入它们的实现包Q实际上?体的是由它们自n完成了?br /> <br /> 接口说白了,也就是定M一个框Q具体的是糊U纸q是p黑U我们都用不着ȝ的,我们只要知道它是个框Q提?br /> ?哪些Ҏ够了?br /> <br /> 举个单的JDBC的例子吧Q比如有个BaseDao接口Q现在有MySQLDao实现了一个(我们可以把具体的实现c?配在配置<br /> 文g中,再通过反射q行实例化)Q也qDLQ?br /> <br /> BaseDao dao = (BaseDao)(Class.forName(Config.getDaoName()).newInstance());<br /> <br /> 其中 Config.getDaoName()可以获得配置文g中的配置Q比如是Qcom.bao.dao.impl.MySQLDao?br /> <br /> ?后,那些人开始要烧钱了,要改用Oracle了,q样我们只要按BaseDao的定义,再实C个OracleDao可以了Q?br /> 再将配置文g中的 配置改ؓQcom.bao.dao.impl.OralceDao可以了Q而在已经写好的代码中Q我们可以一行不<br /> 改的q行了数据库ULQ这个就 是面向对象设计原则中?#8220;开-闭原?#8221;Q对增加是开攄Q对修改是封闭的Q。但<br /> q只是理Z的,现实中很隑ց到的?br /> <br /> 接口 = 电脑的USB插口!<br /> <br /> 因ؓ接口订好了,所以那面到底插的是什么就不重要了Q?br /> 我们用户只需?br /> 1 插上?br /> 2 停用Ud讑֤<br /> 3 拔下?br /> <br /> q三个就好似USB的接口功能。他隐藏了实际功能,但提供给用户l一的操作界面和使用方式<br /> <br /> 写小的应用程序看不到接口的优势,写大点的E序马上显C出接口的优势,大明显.所以还是从现在开始养成面向接口编E的习惯Q写多了E序׃觉得优势 显而易见.<br /> <br /> 链条l装h?然后向上面挂东西.....挂的东西可以随时拿下?可以随时替换?可以随时安上?......<br /> <br /> 子类只能l承一个父c?br /> 却可以承多个接?.功能区分清晰Q改h方便<br /> 够了?br /> 多给?br /> <br /> 优点Q?br /> 接口和实现分MQ适于团队的协作开发?</div> <br /> <div>更具体的优点Q可以参看IDP原则?br /> <br /> ~点Q?br /> 设计难了Q在你没有写实现的时候,得惛_接口Q接口一变,全部乱套Q这是 所谓的设计比实现难?br /> <br /> 主要Z实现松散耦合的系l,便于以后升Q扩展.你去研究一下spring吧,那东东会让你真正体会到interface的优点.<br /> <br /> 接口Q主要是Z 弥补 JAVA 丢失?多承?的特点吧 。。?br /> <br /> 装好,好?br /> <br /> 易扩?br /> <br /> Ҏ让h把编写程序和现实联系h。呵?br /> <br /> 接口在项目中用的比较多的原因是,当你调用别h的接口时可以不用部vQ直接引用就行了?br /> <br /> 我记得我曄在一帖子中提到q,一个接口可以从三方面去考察Q?br /> <span style="color: #ff0000;">?定者(或者叫协调者)</span>Q?span style="color: #ff0000;">实现者(或者叫生者)</span>Q?span style="color: #ff0000;">调用者(或者叫消费者)</span>?br /> <br /> 接口本质上就?span style="color: #ff0000;">由制定者来协调实现者和调用者之间的关系</span>?br /> <br /> 所以通常说的 “面向接口~程”可以理解为:<br /> <span style="color: #ff0000;">只有实现者和调用者都遵@“面向接口 ~程”q个准则Q制定者的协调目的才能辑ֈ?/span><br /> <br /> 一个老生常谈的例子就是JDBC?br /> <br /> 很多解:既然我每q接 一U数据库Q如mysqlQ都要事先部|驱动程序,那我直接讉K驱动E序不就行了Q还要JDBCq吗Q?br /> <br /> 实际上,JDBC已经起了臛_重要 的作用了Q正因ؓ驱动E序是按照JDBC所规定的方法编写的Q你才可以按照JDBC的方式去使用?br /> 换句话说Q如果驱动程序提供者不按照JDBC?准来~写Q而是按它自己独创的方式编写,那么你在使用驱动E序的时候就要花旉查看驱动E序的文以搞清楚用法。而当你日后决定用另一U数据库的时候, q种数据库的驱动E序也不是按照JDBC~写的,你又得去搞清楚另一套完全不同的用法Q而你的所有代码都必须做相应的更改。这U代h不可惌的?br /> <br /> ?现在的情冉|Q驱动程序提供者都按照JDBC规定的方式来~写Q程序员都按照JDBC规定的方式来使用。程序员不用兛_自己正在使用何种数据库,而驱动程 序编写者也不用费尽心力ȝ写接口文档来向程序员解释驱动E序的用法,大家都向标准看齐p了?br /> <br /> 转蝲自:<a >http://www.java123.net/JavaSE/mianxiangjiekoubianchengdehaochuheyoudian_7139.html</a><br /><br /> </div><img src ="http://www.aygfsteel.com/skywind/aggbug/351638.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/skywind/" target="_blank">sky.wind</a> 2011-06-02 23:04 <a href="http://www.aygfsteel.com/skywind/archive/2011/06/02/351638.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Զ</a>| <a href="http://" target="_blank">ľ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">踽</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ֻ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͨ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank">٤ʦ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ӣ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">䴨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ļ</a>| <a href="http://" target="_blank">ұ</a>| <a href="http://" target="_blank">̫</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˴</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>