<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MoDoFo.println(" &#187; OO</title>
	<atom:link href="http://zhangv.com/archives/tag/oo/feed" rel="self" type="application/rss+xml" />
	<link>http://zhangv.com</link>
	<description>Life for Idea - forever young</description>
	<lastBuildDate>Fri, 20 Jan 2012 01:32:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>object-oriented software testing</title>
		<link>http://zhangv.com/archives/1008</link>
		<comments>http://zhangv.com/archives/1008#comments</comments>
		<pubDate>Thu, 14 May 2009 06:26:52 +0000</pubDate>
		<dc:creator>zhangv</dc:creator>
				<category><![CDATA[技术(Tech)]]></category>
		<category><![CDATA[软件测试]]></category>
		<category><![CDATA[mindmap]]></category>
		<category><![CDATA[OO]]></category>

		<guid isPermaLink="false">http://zhangv.com/archives/1008</guid>
		<description><![CDATA[


	Tags: 软件测试, mindmap, OO
]]></description>
			<content:encoded><![CDATA[<p><img style="max-width: 800px;" src="http://zhangv.com/wordpress/wp-content/uploads/oo-software-testing.png" /></p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=0b21ad18-8906-8440-91fb-115d300cd4b5" /></div>

	Tags: <a href="http://zhangv.com/archives/tag/%e8%bd%af%e4%bb%b6%e6%b5%8b%e8%af%95" title="软件测试" rel="tag">软件测试</a>, <a href="http://zhangv.com/archives/tag/mindmap" title="mindmap" rel="tag">mindmap</a>, <a href="http://zhangv.com/archives/tag/oo" title="OO" rel="tag">OO</a><br />
]]></content:encoded>
			<wfw:commentRss>http://zhangv.com/archives/1008/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OO设计原则</title>
		<link>http://zhangv.com/archives/439</link>
		<comments>http://zhangv.com/archives/439#comments</comments>
		<pubDate>Wed, 06 Aug 2008 09:15:08 +0000</pubDate>
		<dc:creator>zhangv</dc:creator>
				<category><![CDATA[技术(Tech)]]></category>
		<category><![CDATA[翻译]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[OO]]></category>
		<category><![CDATA[SCEA]]></category>

		<guid isPermaLink="false">http://zhangv.com/?p=439</guid>
		<description><![CDATA[抖胆翻译一下scea study guide里的第一章的OO设计原则.纪录一下.
开闭原则
类应该被扩展,而不是被修改
Liskov替换原则
子类可以替换父类
依赖注入原则
依赖于抽象,而不是实现
接口分离原则
接口应该分开,避免单一通用的接口
合成重用原则
尽量用多态聚合代替继承
最少知识原则
操作知道尽可能少的当前类中的对象(自身,参数,类中的其他实例对象)
发布重用等效原则
细粒度的重用相当于细粒度的版本发布
包依赖:
共同关闭原则
一同变更的类应放在一起
公用重用原则
如果类不会一起被重用,就不应该放到一起.
非循环依赖原则
包之间不可以有循环依赖
依赖不变原则
依赖不应该经常变化
抽象不变原则
抽象包不应该经常变化

	Tags: 翻译, design, OO, SCEA
]]></description>
			<content:encoded><![CDATA[<p>抖胆翻译一下<a href="http://java.boot.by/scea5-guide/ch01.html">scea study guide</a>里的第一章的OO设计原则.纪录一下.</p>
<p>开闭原则<br />
类应该被扩展,而不是被修改</p>
<p>Liskov替换原则<br />
子类可以替换父类</p>
<p>依赖注入原则<br />
依赖于抽象,而不是实现</p>
<p>接口分离原则<br />
接口应该分开,避免单一通用的接口</p>
<p>合成重用原则<br />
尽量用多态聚合代替继承</p>
<p>最少知识原则<br />
操作知道尽可能少的当前类中的对象(自身,参数,类中的其他实例对象)</p>
<p>发布重用等效原则<br />
细粒度的重用相当于细粒度的版本发布</p>
<p>包依赖:</p>
<p>共同关闭原则<br />
一同变更的类应放在一起</p>
<p>公用重用原则<br />
如果类不会一起被重用,就不应该放到一起.</p>
<p>非循环依赖原则<br />
包之间不可以有循环依赖</p>
<p>依赖不变原则<br />
依赖不应该经常变化</p>
<p>抽象不变原则<br />
抽象包不应该经常变化</p>

	Tags: <a href="http://zhangv.com/archives/tag/%e7%bf%bb%e8%af%91" title="翻译" rel="tag">翻译</a>, <a href="http://zhangv.com/archives/tag/design" title="design" rel="tag">design</a>, <a href="http://zhangv.com/archives/tag/oo" title="OO" rel="tag">OO</a>, <a href="http://zhangv.com/archives/tag/scea" title="SCEA" rel="tag">SCEA</a><br />
]]></content:encoded>
			<wfw:commentRss>http://zhangv.com/archives/439/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>软件建模三元素</title>
		<link>http://zhangv.com/archives/135</link>
		<comments>http://zhangv.com/archives/135#comments</comments>
		<pubDate>Wed, 20 Feb 2008 08:18:49 +0000</pubDate>
		<dc:creator>zhangv</dc:creator>
				<category><![CDATA[技术(Tech)]]></category>
		<category><![CDATA[语言]]></category>
		<category><![CDATA[Idea]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[OO]]></category>

		<guid isPermaLink="false">http://218.22.170.60/zhangv/wordpress/?p=199</guid>
		<description><![CDATA[偶然的灵感, 能否以后编程就和写作文一样呢? 这也应该是面向对象的终极目标吧.下面这个是经常出现在教科书上的例子.
Person tom = new Person()  - &#62; tom is a Person
Dog trigger = new Dog() -&#62; trigger is a Dog
List&#60;Person&#62; friends = new ArrayList&#60;Person&#62; - &#62; Person have Person friends
Person implements Emotianal,HumanBehave -&#62; Person behave Emotional and surely behave as a human.
interface Emotional{ sadly(); happily();} -&#62;Emotional including sadly and happily doing things.
interface [...]]]></description>
			<content:encoded><![CDATA[<p>偶然的灵感, 能否以后编程就和写作文一样呢? 这也应该是面向对象的终极目标吧.下面这个是经常出现在教科书上的例子.</p>
<p>Person tom = new Person()  - &gt; tom is a Person</p>
<p>Dog trigger = new Dog() -&gt; trigger is a Dog</p>
<p>List&lt;Person&gt; friends = new ArrayList&lt;Person&gt; - &gt; Person have Person friends</p>
<p>Person implements Emotianal,HumanBehave -&gt; Person behave Emotional and surely behave as a human.</p>
<p>interface Emotional{ sadly(); happily();} -&gt;Emotional including sadly and happily doing things.</p>
<p>interface HumanBehave {cry();laugh();call(Person);} -&gt; HumanBehave including cry and laugh and call somebody.</p>
<p>tom.cry().sadly() -&gt;  tom is crying sadly</p>
<p>tom.call(ann) -&gt; tom is calling ann</p>
<p>如果以后将软件建模分为过程建模(process modeling)和对象建模(OO modeling),那么就更和谐了.让流程引擎来管理对象的生命周期以及提供上下文环境,对象只是一些功能性的个体.可能是因为最近了解了一些jBPM的东西.其实还应该有规则建模(也就是AOP主要解决的问题).过程,规则,对象这三者是否可以成为"三元素"而统一所有的软件建模领域呢?</p>
<p>有点不明白,为什么java不直接把void这种返回值省略掉,也就是如果没有东西返回就返回this.虽然只是一个很小地方,但真不觉得void有什么用.</p>
<p>例文:</p>
<p>A story about tom and ann (tom,ann,cruger=new Person...)</p>
<p>It's friday.Raining. (context, initialize , environment)</p>
<p>Tom goes to the cinema, buys a ticket and sit. (tom.goToCinima().buyTicket().sit())</p>
<p>Movie started.(environment changed)</p>
<p>Tom notices a pretty girl beside him.(tom.notice(ann))</p>
<p>Tom fell in love.(tom.fallInLove(ann))</p>
<p>Tom kissed the girl whose name is ann. (tom.kiss(ann))</p>
<p>Tom get kicked ass by  cruger who is Ann ' boy friend'. (cruger.kickAss(tom))</p>
<p>The end. (process end)</p>
<p>哈哈</p>

	Tags: <a href="http://zhangv.com/archives/tag/%e8%af%ad%e8%a8%80" title="语言" rel="tag">语言</a>, <a href="http://zhangv.com/archives/tag/idea" title="Idea" rel="tag">Idea</a>, <a href="http://zhangv.com/archives/tag/java" title="Java" rel="tag">Java</a>, <a href="http://zhangv.com/archives/tag/oo" title="OO" rel="tag">OO</a><br />
]]></content:encoded>
			<wfw:commentRss>http://zhangv.com/archives/135/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

