新西兰天维网社区

 找回密码
登录  注册
搜索
热搜: 移民 留学
查看: 1149|回复: 12
打印 上一主题 下一主题

[梅西] 最通俗的例子 --- Class Design Principle [复制链接]

Rank: 6Rank: 6

升级  35.33%

UID
12289
热情
32
人气
2
主题
0
帖子
527
精华
11
积分
306
阅读权限
20
注册时间
2002-12-4

校园学术勋章

跳转到指定楼层
楼主
发表于 2005-11-7 02:29:58 |只看该作者 |倒序浏览 微信分享
...... For 157.226......


Open Closed Principle OCP:

A module should be open for extension but closed for modification.

就像升级电脑一样,我们要拨号上网就插一张内置Modem;我们要用电脑看电视就插一张电视卡;我们要联网玩游戏就插一张网卡;如果我们什么都不要,就什么都不插.这个"插与不插"的过程不会影响到原来电脑可以使用的功能,例如,有没有Modem我们都可以听MP3.

另外一个例子: 炒菜的时候你可以选择放盐,放糖,放醋,放泻药,或者什么都不放.无论你放了什么或者什么都不放,那盘菜炒熟后都是可以吃的.


Liskov Substitution Principle LSP:

Subclasses should be substitutable for their base classes.

用回电脑做例子.假设你的硬盘有十个分区,那么,你可以把一首MP3放在任意一个分区里面,无论你放在哪个分区,都代表了硬盘是可以存储MP3的.

另外一个例子:如果要研究一下普通人的头部有什么器官,那么随便在梅西抓一个学生回来就可以慢慢研究了,因为学生也是一个人.


Dependency Inversion Principle DIP:

Depend on abstractions. Do not depend upon concretions.

踢足球的时候最讲究的就是合作.假设一支足球队在比赛中胜出了,颁奖的时候却不是给每个球员一个奖杯,而是给了整支足球队,虽然每个球员都是足球队的一分子.

178.280告诉我们,如果要对下一年的经济做出预测,那么就要看今年整体的经济数据,而不是单独某一项数据,因为整体数据更加有代表性,单独的任何数据都已经在包括在整体的数据里面.

另外一个例子: Kiwi普偏都比我们胖,可是偶尔可能也有一两个Kiwi是皮包骨的.所以,如果要对比普通的Kiwi和普通的中国人哪个重,我们就要看宏观的看,不能单单的因为看到那个皮包骨的,就觉得中国人比Kiwi胖.


Interface Segregation Principle ISP:

Many client specific interfaces are better than one general-purpose interface.

这次用SkyKiwi做例子了.Skykiwi上有很多板块,我们是梅西的,大部分时间都在梅西这个板块灌水.即使灌得再多,跟奥大的板块是没有任何关系的.哪怕奥大那个板块关闭了,我们依然可以在梅西这个板块拼命灌.

另外一个例子: ShowBoy是给mm看的,ShowGirl是给gg看的,这样就可以同时满足了mm 和gg的不同需要.如果只有一个ShowPerson,里面只有ShowGirl的话,就是失去了原来的mm客户;里面只有ShowBoy的话,将会失去了原来的gg顾客.当然,除了gay.

[ 本帖最后由 LostGhost 于 2005-11-7 20:01 编辑 ]

使用道具 举报

Rank: 12Rank: 12Rank: 12

升级  6.07%

UID
46922
热情
383
人气
53
主题
2
帖子
6674
精华
2
积分
3591
阅读权限
30
注册时间
2005-8-17
沙发
发表于 2005-11-7 04:54:02 |只看该作者 微信分享
对DIP的解释不太认同

使用道具 举报

Rank: 6Rank: 6

升级  35.33%

UID
12289
热情
32
人气
2
主题
0
帖子
527
精华
11
积分
306
阅读权限
20
注册时间
2002-12-4

校园学术勋章

板凳
发表于 2005-11-7 11:39:48 |只看该作者 微信分享
修改一下:

DIP

踢足球的时候最讲究的就是合作.假设一支足球队在比赛中胜出了,颁奖的时候并不是给每个球员一个奖杯,而是给整支足球队一个奖杯,虽然这支足球队是由n个球员组成的.

178.280告诉我们,如果要对下一年的经济做出预测,那么就要看今年整体的经济数据,而不是单独某一项数据,因为整体数据更加有代表性,单独的任何数据都已经在包括在整体的数据里面.

另外一个例子: Kiwi普偏都比我们胖,可是偶尔可能也有一两个Kiwi是皮包骨的.所以,如果要对比普通的Kiwi和普通的中国人哪个重,我们就要看宏观的看,不能单单的因为看到那个皮包骨的,就觉得中国人比Kiwi胖.


这样会不会好点?

[ 本帖最后由 LostGhost 于 2005-11-7 11:50 编辑 ]

使用道具 举报

Rank: 16Rank: 16Rank: 16Rank: 16

升级  36.12%

UID
6458
热情
1823
人气
486
主题
16
帖子
31079
精华
29
积分
16806
阅读权限
30
注册时间
2001-8-8

10周年纪念

地板
发表于 2005-11-7 11:43:03 |只看该作者 微信分享
支持学习帖
离开NZ了,有时候会回来看看。

使用道具 举报

Rank: 8Rank: 8

升级  1%

UID
5874
热情
27
人气
31
主题
2
帖子
940
精华
0
积分
505
阅读权限
20
注册时间
2003-3-23
5#分享本帖地址
发表于 2005-11-7 12:00:17 |只看该作者 微信分享
Design Pattern : too much for theroy

In the reality , only a few of them can apply for large applications.

使用道具 举报

Rank: 6Rank: 6

升级  35.33%

UID
12289
热情
32
人气
2
主题
0
帖子
527
精华
11
积分
306
阅读权限
20
注册时间
2002-12-4

校园学术勋章

6#分享本帖地址
发表于 2005-11-7 12:06:15 |只看该作者 微信分享
原帖由 eastlion 于 2005-11-7 12:00 发表
Design Pattern : too much for theroy

In the reality , only a few of them can apply for large applications.




如果不是弄这么多出来的话,他们哪有借口出书赚钱啊?

使用道具 举报

Rank: 10Rank: 10Rank: 10

升级  69.47%

UID
12602
热情
237
人气
15
主题
0
帖子
5770
精华
10
积分
3042
阅读权限
30
注册时间
2001-3-2

校园学术勋章 元老勋章

7#分享本帖地址
发表于 2005-11-7 12:35:47 |只看该作者 微信分享
哇!~~好学术啊!!!~~
我生来一贫如洗,但决不能死时仍旧贫困潦倒。

使用道具 举报

头像被屏蔽

禁止发言

UID
14450
热情
2783
人气
3852
主题
30
帖子
43371
精华
2
积分
25129
阅读权限
1
注册时间
2007-7-23
8#分享本帖地址
发表于 2005-11-7 12:39:32 |只看该作者 微信分享
提示: 作者被禁止或删除 内容自动屏蔽

使用道具 举报

头像被屏蔽

禁止发言

UID
14450
热情
2783
人气
3852
主题
30
帖子
43371
精华
2
积分
25129
阅读权限
1
注册时间
2007-7-23
9#分享本帖地址
发表于 2005-11-7 12:42:34 |只看该作者 微信分享
提示: 作者被禁止或删除 内容自动屏蔽

使用道具 举报

Rank: 6Rank: 6

升级  35.33%

UID
12289
热情
32
人气
2
主题
0
帖子
527
精华
11
积分
306
阅读权限
20
注册时间
2002-12-4

校园学术勋章

10#分享本帖地址
发表于 2005-11-7 19:52:06 |只看该作者 微信分享
原帖由 NNP 于 2005-11-7 12:39 发表
OCP DIP 解释有问题吧

我认为OCP 的意思是去电子娱乐室有各种各样的娱乐机器,有各种各样的娱乐节目,你可以玩他们,但是你不能又要玩玩不爽了,丁咣揣几脚试图改变他们让他们把你的游戏币吐出来。

DIP 有2层意思:
A: 在company,Manager不应该依赖于群众干活不能听从群众意见,应该听董事长的(董事长是个抽象class),

B:抽象的类不应该听有具体打算的类,有具体打算的类应该听从抽象的类。



不是很同意你的意见.

OCP:

Open for extension: 你可以对现有的电脑系统添加额外的功能,通过插一张PIC卡在主板上.

Close for modification: 假设你主板上原来只是插了一张Modem,现在因为想用电脑看电视,就插多了一张电视卡,很不幸,那张电视卡用了一天后坏掉了,但是这不会影响到原来Model的使用.如果像继续用电脑看电视的话,把坏的那张电视卡拿去修或者换一张新的就可以了.

另外一个例子:炒菜的时候,如果什么都不放, 那就是原味.如果你想甜的,那样就加糖;如果你想甜酸的,那样就再加醋.如果你还想下毒,那样就再来一点泻药.无论最后你加不加泻药,都不会影响到原来的甜酸味.就像无论你加不加醋,都不会影响到原来的甜味.

DIP一开始那个是有岐义,但是经过"小小杨杨 "的提示修改之后的例子,应该没有什么问题了.

使用道具 举报

Rank: 12Rank: 12Rank: 12

升级  6.07%

UID
46922
热情
383
人气
53
主题
2
帖子
6674
精华
2
积分
3591
阅读权限
30
注册时间
2005-8-17
11#分享本帖地址
发表于 2005-11-7 21:33:45 |只看该作者 微信分享
Open Closed Principle OCP:

A module should be open for extension but closed for modification.

就像升级电脑一样,我们要拨号上网就插一张内置Modem;我们要用电脑看电视就插一张电视卡;我们要联网玩游戏就插一张网卡;如果我们什么都不要,就什么都不插.这个"插与不插"的过程不会影响到原来电脑可以使用的功能,例如,有没有Modem我们都可以听MP3.

我觉得应该是要新的功能就买新的部件,不能去改装现有的部件

Dependency Inversion Principle DIP:

Depend on abstractions. Do not depend upon concretions.

踢足球的时候最讲究的就是合作.假设一支足球队在比赛中胜出了,颁奖的时候却不是给每个球员一个奖杯,而是给了整支足球队,虽然每个球员都是足球队的一分子.

球员和球队应该不是继承的关系

178.280告诉我们,如果要对下一年的经济做出预测,那么就要看今年整体的经济数据,而不是单独某一项数据,因为整体数据更加有代表性,单独的任何数据都已经在包括在整体的数据里面.

另外一个例子: Kiwi普偏都比我们胖,可是偶尔可能也有一两个Kiwi是皮包骨的.所以,如果要对比普通的Kiwi和普通的中国人哪个重,我们就要看宏观的看,不能单单的因为看到那个皮包骨的,就觉得中国人比Kiwi胖.

是不是应该说不能看kiwi胖就说'人'胖,看中国人瘦就说'人'瘦,应该看'人'...虽然这么说有点怪

使用道具 举报

Rank: 6Rank: 6

升级  35.33%

UID
12289
热情
32
人气
2
主题
0
帖子
527
精华
11
积分
306
阅读权限
20
注册时间
2002-12-4

校园学术勋章

12#分享本帖地址
发表于 2005-11-7 21:57:38 |只看该作者 微信分享
原帖由 小小杨杨 于 2005-11-7 21:33 发表
Open Closed Principle OCP:

A module should be open for extension but closed for modification.

就像升级电脑一样,我们要拨号上网就插一张内置Modem;我们要用电脑看电视就插一张电视卡;我们要联网玩游 ...



"我觉得应该是要新的功能就买新的部件,不能去改装现有的部件."

>>>>  完全同意.

"球员和球队应该不是继承的关系."

>>>>每个球队就是由n个球员组成的,把所有球员看成是一个整体. 所以应该每个球员对于这个球队来说都可以算是一个instance.

"是不是应该说不能看kiwi胖就说'人'胖,看中国人瘦就说'人'瘦,应该看'人'...虽然这么说有点怪"  

>>>完全同意.但是我觉得我说的也没有错.

使用道具 举报

Rank: 4

升级  18.57%

UID
17421
热情
8
人气
0
主题
0
帖子
518
精华
0
积分
43
阅读权限
20
注册时间
2005-3-9
13#分享本帖地址
发表于 2005-11-21 00:55:35 |只看该作者 微信分享
dddddddddddddddddddddddddddd

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版| 联系论坛客服| 广告服务| 招贤纳士| 新西兰天维网

GMT+13, 2024-11-11 11:22 , Processed in 0.019677 second(s), 15 queries .

Powered by Discuz! X2 Licensed

Copyright 2001- Sky Media Limited, All Rights Reserved.

回顶部