﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-OOPAA-随笔分类-OO 面向对象</title><link>http://www.blogjava.net/mingj/category/35716.html</link><description>Focusing on OO, Patterns, Architecture, and Agile</description><language>zh-cn</language><lastBuildDate>Sat, 23 May 2009 02:25:59 GMT</lastBuildDate><pubDate>Sat, 23 May 2009 02:25:59 GMT</pubDate><ttl>60</ttl><item><title>一次 Refactoring to Functionality 的实践</title><link>http://www.blogjava.net/mingj/archive/2009/05/16/270988.html</link><dc:creator>mingj</dc:creator><author>mingj</author><pubDate>Sat, 16 May 2009 07:15:00 GMT</pubDate><guid>http://www.blogjava.net/mingj/archive/2009/05/16/270988.html</guid><wfw:comment>http://www.blogjava.net/mingj/comments/270988.html</wfw:comment><comments>http://www.blogjava.net/mingj/archive/2009/05/16/270988.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/mingj/comments/commentRss/270988.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mingj/services/trackbacks/270988.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 对于软件开发，多少代工程师梦想能像堆积木一样堆出满足功能需求的软件。Brooks在No Silver Bullet一文中提到解决软件开发过程中复杂性的一种可能方案就是成熟的组件市场，人们可以购买需要的组件而不是再自行开发。但对于开发工作，有没有一种更高层面的模式，可以把原来混乱无序的开发过程分解成一段段明确定义的步骤？比如说，开发人员接到一个任务，他可以这样跟他的同伴解释他的计划：“我先要抽取类（extract class），然后移动方法（move method），就完成了。”这正是本文试图讨论的主题：通过一系列明确定义的重构步骤，以达到实现系统功能的目的。我们可以进一步假想，重构是否就是开发人员开发软件的领域专属语言呢（refactoring as DSLs to developers' development）&nbsp;&nbsp;<a href='http://www.blogjava.net/mingj/archive/2009/05/16/270988.html'>阅读全文</a><img src ="http://www.blogjava.net/mingj/aggbug/270988.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mingj/" target="_blank">mingj</a> 2009-05-16 15:15 <a href="http://www.blogjava.net/mingj/archive/2009/05/16/270988.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> DIP 沉思录</title><link>http://www.blogjava.net/mingj/archive/2008/11/02/238191.html</link><dc:creator>mingj</dc:creator><author>mingj</author><pubDate>Sun, 02 Nov 2008 09:37:00 GMT</pubDate><guid>http://www.blogjava.net/mingj/archive/2008/11/02/238191.html</guid><wfw:comment>http://www.blogjava.net/mingj/comments/238191.html</wfw:comment><comments>http://www.blogjava.net/mingj/archive/2008/11/02/238191.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/mingj/comments/commentRss/238191.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mingj/services/trackbacks/238191.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 说起 DIP ，大家第一反应肯定是 spring framework，想起“Dependency Injection”（依赖注入）。对 DIP 而言，真是幸也 spring，不幸也 spring。作为 OO 设计开发的重要原则之一，DIP 远远不只是依赖注入模式，重读 Robert Fowler 的《Agile Software Developement：principles，Patterns，and Practices》，就会发现前面的理解只见其表，不见其里——只抓住 DIP 实践的表面形式，而对其背后 OOA & OOD 的深刻涵义视而不见——真是入宝山而空返。本文就将试着分析 DIP 的内外两层涵义，并根据实际的例子分析，给读者增进对面向对象思想的理解。&nbsp;&nbsp;<a href='http://www.blogjava.net/mingj/archive/2008/11/02/238191.html'>阅读全文</a><img src ="http://www.blogjava.net/mingj/aggbug/238191.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mingj/" target="_blank">mingj</a> 2008-11-02 17:37 <a href="http://www.blogjava.net/mingj/archive/2008/11/02/238191.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>