Chinese => English
『一只小螞蟻』的專欄
BlogJava
|
首頁
|
發新隨筆
|
發新文章
|
聯系
|
聚合
|
管理
隨筆:135 文章:0 評論:250 引用:0
『螞蟻學模式』之里氏代換原則(LSP)
7.2 what
一個軟件實體如果使用的是一個基類的話,那么一定適用于其子類,而且它根本不能覺察出基類對象和子類對象的區別。
反之不成立。
7.3 在設計模式中的體現
策略模式
合成模式
代理模式
7.5
長方形和正方形
Rectangle類的源代碼:
?1
package
?com.javapatterns.liskov.version1;
?2
?3
public
?
class
?Rectangle
?4
{
?5
????
private
?
long
?width;
?6
????
private
?
long
?height;
?7
????
?8
????
public
?
void
?setWidth(
long
?width)
?9
????
{
10
????????
this
.width?
=
?width;
11
????}
12
????
public
?
long
?getWidth()
13
????
{
14
????????
return
?
this
.width;
15
????}
16
????
public
?
void
?setHeight(
long
?height)
17
????
{
18
????????
this
.height?
=
?height;
19
????}
20
????
public
?
long
?getHeight()
21
????
{
22
????????
return
?
this
.height;
23
????}
24
}
Square類的源代碼:
?1
package
?com.javapatterns.liskov.version1;
?2
?3
public
?
class
?Square
?4
{
?5
????
private
?
long
?side;
?6
????
?7
????
public
?
void
?setSide(
long
?side)
?8
????
{
?9
????????
this
.side?
=
?side;
10
????}
11
12
????
public
?
long
?getSide()
13
????
{
14
????????
return
?side;
15
????}
16
}
正方形不可以作為長方形的子類
新的Square類的源代碼:
?1
package
?com.javapatterns.liskov.version2;
?2
?3
public
?
class
?Square?
extends
?Rectangle
?4
{
?5
????
private
?
long
?side;
?6
?7
????
public
?
void
?setWidth(
long
?width)
?8
????
{
?9
????????setSide(width);
10
????}
11
12
????
public
?
long
?getWidth()
13
????
{
14
????????
return
?getSide();
15
????}
16
17
????
public
?
void
?setHeight(
long
?height)
18
????
{
19
????????setSide(height);
20
????}
21
22
????
public
?
long
?getHeight()
23
????
{
24
????????
return
?getSide();
25
????}
26
27
????
public
?
long
?getSide()
28
????
{
29
????????
return
?side;
30
????}
31
32
????
public
?
void
?setSide(
long
?side)
33
????
{
34
????????
this
.side?
=
?side;
35
????}
36
}
SmartTest類的源代碼:
?1
package
?com.javapatterns.liskov.version2;
?2
?3
public
?
class
?SmartTest
?4
{
?5
????
public
?
void
?resize(Rectangle?r)
?6
????
{
?7
????????
while
?(r.getHeight()?
<=
?r.getWidth()?)
?8
????????
{
?9
????????????r.setWidth(r.getWidth()?
+
?
1
);
10
????????}
11
????}
12
13
????
/**?*/
/**
?
@link
?dependency?
*/
14
????
/**/
/*
#Rectangle?lnkRectangle;
*/
15
}
代碼的重構
Quadrangle類的源代碼:
1
package
?com.javapatterns.liskov.version3;
2
3
public
?
interface
?Quadrangle
4
{
5
????
public
?
long
?getWidth();
6
7
????
public
?
long
?getHeight();
8
}
Rectangle類的源代碼:
?1
package
?com.javapatterns.liskov.version3;
?2
?3
public
?
class
?Rectangle?
implements
?Quadrangle?
?4
{
?5
????
private
?
long
?width;
?6
????
private
?
long
?height;
?7
????
?8
????
public
?
void
?setWidth(
long
?width)
?9
????
{
10
????????
this
.width?
=
?width;
11
????}
12
????
public
?
long
?getWidth()
13
????
{
14
????????
return
?
this
.width;
15
????}
16
????
public
?
void
?setHeight(
long
?height)
17
????
{
18
????????
this
.height?
=
?height;
19
????}
20
????
public
?
long
?getHeight()
21
????
{
22
????????
return
?
this
.height;
23
????}
24
}
Square類的源代碼:?
?1
package
?com.javapatterns.liskov.version3;
?2
?3
public
?
class
?Square?
implements
?Quadrangle?
?4
{
?5
????
private
?
long
?side;
?6
?7
????
public
?
void
?setSide(
long
?side)
?8
????
{
?9
????????
this
.side?
=
?side;
10
????}
11
12
????
public
?
long
?getSide()
13
????
{
14
????????
return
?side;
15
????}
16
17
????
public
?
long
?getWidth()
18
????
{
19
????????
return
?getSide();
20
????}
21
22
????
public
?
long
?getHeight()
23
????
{
24
????????
return
?getSide();
25
????}
26
}
歡迎大家訪問我的個人網站
萌萌的IT人
發表于 2006-09-15 16:42
Thomas
閱讀(521)
評論(0)
編輯
收藏
所屬分類:
螞蟻學模式
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
『螞蟻學模式』之實例化策略(Strategy)模式
『螞蟻學模式』之實例化門面(Facade)模式
『螞蟻學模式』之實例化代理(Proxy)模式
『螞蟻學模式』之實例化裝飾(Decorator)模式
『螞蟻學模式』之實例化合成(Composite)模式
『螞蟻學模式』之實例化缺省適配器(Default Adapter)模式
『螞蟻學模式』之實例化適配器(Adapter)模式
『螞蟻學模式』之實例化原型模式
『螞蟻學模式』之實例化建造者模式
『螞蟻學模式』之實例化單例模式(二)
<
2006年9月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(9)
給我留言
查看公開留言
查看私人留言
隨筆分類
(138)
Agile(3)
(rss)
AppFuse(1)
(rss)
Apusic OperaMasks(1)
(rss)
Books(1)
(rss)
Business & Finance(1)
(rss)
DDD(2)
(rss)
Design Patterns(1)
(rss)
Eclipse(4)
(rss)
EJB3.0
(rss)
Groovy & Grails
(rss)
Hibernate(3)
(rss)
Internet
(rss)
J2EE核心模式(2)
(rss)
Java ABC(4)
(rss)
Java EE(6)
(rss)
JavaScript & Ajax(2)
(rss)
JBoss Seam(5)
(rss)
JPA(1)
(rss)
JSF(2)
(rss)
Life(15)
(rss)
Open Source(3)
(rss)
Other(40)
(rss)
Portal(1)
(rss)
Pylons學習(3)
(rss)
Python(2)
(rss)
Security(2)
(rss)
Spring(3)
(rss)
TDD(3)
(rss)
Writing(1)
(rss)
一周閱讀推薦(3)
(rss)
螞蟻學模式(23)
(rss)
隨筆檔案
(135)
2007年11月 (9)
2007年10月 (5)
2007年9月 (10)
2007年8月 (13)
2007年7月 (8)
2007年6月 (7)
2007年5月 (10)
2007年4月 (10)
2007年3月 (4)
2007年2月 (5)
2007年1月 (12)
2006年12月 (13)
2006年11月 (7)
2006年10月 (2)
2006年9月 (15)
2006年8月 (4)
2006年7月 (1)
相冊
Technology
收藏夾
(38)
Design Patterns(3)
(rss)
InfoQ(9)
(rss)
Java(1)
(rss)
JBoss Seam(6)
(rss)
My Articles(11)
(rss)
Reading(8)
(rss)
About me
my "douban" on douban
my "fanfou" on fanfou
my blog on baidu
my bookmarks on del.icio.us
my photos on picasaweb
Blogs
Anders小明的Blog
BlueDavy之技術Blog
Chris Richardson
gigix
Martin Fowler
Michael Yuan
robbin
夢想風暴
江南白衣
簡單就是美!
胡長城(銀狐999)BLOG
良葛格學習筆記
蛟龍居
鍵盤上的舞者
Classmates
碧濤居
Coworkers
一個基督徒的在世歷程
English
BBC China
普特英語聽力
Friends
BeanSoft
main()
劉玉輝
雙魚瓶
小獻
曹江華
阿蜜果
Java
BlogJava
Blogs Summary
DevX: Java Zone
DZone
Huihoo
IBM developerWorks 中國
InfoQ
JAVA DEVELOPER'S JOURNAL
javablogs
JavaEye
javapassion.com
JavaWorld
Java站點
JBoss Seam中文站
JCP
Java Community Process
J道
Object Mentor Blog
ONJava
Raible Designs | Java
TSS
Open Source
appfuse
EasyJF
Java開源大全
JBoss Seam
OperaMasks.org
OSGi.org.cn
PicoContainer
projecttrack
Project Track - a JSF/Spring/Hibernate/Acegi example application
Redsaga
SpringSide
最新隨筆
1.?【轉載】你的時間在那里,成就就在那里
2.?Seam能否取代Struts?
3.?【一周閱讀推薦】2007.11.05—2007.11.11
4.?選擇Seam的十大理由
5.?《JBoss Seam:一個深度集成框架》pdf文件下載
6.?在JBoss AS下部署Seam示例程序
7.?【翻譯】Spring 2.5架構圖
8.?【一周閱讀推薦】2007.10.29—2007.11.04
9.?JBoss Seam中文站發布
10.?web2.0最全的國外API應用集合
11.?【一周閱讀推薦】2007.10.22—2007.10.28
12.?記住,你的兜里只有100塊!
13.?【轉載】我最恐懼的事情是競爭力的喪失
14.?【翻譯】RIA入門知識
15.?【翻譯】比較NetBeans 6.0 M10和IntelliJ IDEA 7.0 M1
16.?【轉載】Web2.0@China!
17.?【轉載】正確地做事與做正確的事同樣重要
18.?【轉載】你必須要有一樣拿得出手
19.?極限編程
20.?敏捷軟件開發
搜索
積分與排名
積分 - 185426
排名 - 311
最新評論
1.?viagra sale
Hello!
--viagra_sale
2.?generic cialis paypal payment
Hello!
--cialis
3.?re: 【轉載】你的時間在那里,成就就在那里
很多東西也就深明大意了 路就走的更遠了
--水泵
4.?re: 實戰struts2——用戶登錄
請問你的web。xml 是怎么寫的
--111222
5.?re: 【翻譯】不使用Spring的5個理由
在你需要的時候使用
--haremeat
閱讀排行榜
1.?實戰struts2——用戶登錄(15018)
2.?實戰struts2——Hello World(8413)
3.?《JBoss Seam:一個深度集成框架》pdf文件下載(8074)
4.?極限編程(5727)
5.?【翻譯】Spring 2.5架構圖(5332)
評論排行榜
1.?【翻譯】不使用Spring的5個理由(27)
2.?J2EE without AJAX——Apusic OperaMasks框架簡介(16)
3.?《JBoss Seam:一個深度集成框架》pdf文件下載(15)
4.?【翻譯】Spring 2.5架構圖(14)
5.?【轉載】你的時間在那里,成就就在那里(12)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 Thomas
主站蜘蛛池模板:
亚洲欧洲日产国码二区首页
|
亚洲人成网站在线观看青青
|
女人被男人桶得好爽免费视频
|
精品国产免费观看久久久
|
免费的一级黄色片
|
亚洲精品成a人在线观看
|
亚洲熟妇av一区二区三区漫画
|
亚洲精品无码成人片久久
|
久久水蜜桃亚洲av无码精品麻豆
|
国产成人精品亚洲日本在线
|
亚洲av永久无码精品秋霞电影秋
|
亚洲另类视频在线观看
|
亚洲人成www在线播放
|
精品免费AV一区二区三区
|
中文字幕成人免费高清在线
|
亚洲黄色片免费看
|
日本19禁啪啪无遮挡免费动图
|
久久久久亚洲AV成人网人人软件
|
精品无码一区二区三区亚洲桃色
|
亚洲日本VA午夜在线影院
|
九九免费久久这里有精品23
|
一级毛片免费观看不卡的
|
午夜色a大片在线观看免费
|
国产亚洲视频在线播放
|
激情综合亚洲色婷婷五月
|
三年片在线观看免费观看大全中国
|
一级毛片免费观看不卡的
|
免费国产高清视频
|
亚洲今日精彩视频
|
风间由美在线亚洲一区
|
99精品国产成人a∨免费看
|
成人免费无码精品国产电影
|
亚洲精品国产字幕久久不卡
|
久久99国产亚洲精品观看
|
亚洲乱色伦图片区小说
|
无码一区二区三区免费
|
夜色阁亚洲一区二区三区
|
亚洲熟妇av一区二区三区下载
|
亚洲精品黄色视频在线观看免费资源
|
h片在线免费观看
|
国产性爱在线观看亚洲黄色一级片
|