Discuz! Board

 找回密碼
 立即註冊
搜索
熱搜: 活動 交友 discuz
查看: 1|回復: 0
打印 上一主題 下一主題

例子中这样的区域正在添

[複製鏈接]

1

主題

1

帖子

2

積分

新手上路

Rank: 1

積分
2
跳轉到指定樓層
樓主
發表於 2024-1-16 13:25:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
该代码可以工作并实现其目的即计算收到的数字的总和。不幸的是它写得不好。切都很好直到您需要向应用程序添加新形状例如梯形。让我们看看在这种情况下会发生什么。程序中下个类的实现可能如下所示。 新类的构造函数将梯形的底长和高度作为参数而 返回图形的各个尺寸。不幸的是这并不是需要对代码进行的唯更改。需要修改 方法使其计算梯形的面积并将其添加到返回的结果中。 需要修改上述方法意味着它不符合所讨论的原则。这是因为向程序添加新功能在本例中是另个几何图形是通过更改它来完成的而不仅仅是通过编写新代码即 类来完成。

因此 方法对于添加下个形状是开放的并且应该对其关闭。下面是满足开闭原则的正确代码。 为了改进代码进行了些更改。计算几何图形面积的职责已委托给各个类而 方法仅使用 方法检索此面积。为了实现这点有必要创建个 来实现所有形状以计算并返回其面积。 当引入更多数字 克罗地亚电话号码列表 时 方法将不需要任何更改。新类实现 接口就足够了。由于多态性的使用满足了开闭原则。 没有变化? 根据开闭原则代码单元应该禁止修改开放扩展。这是否意味着不能对上例中所示的 方法进行任何更改?点也不。



这里有必要澄清下代码禁止修改意味着什么。不是什么变化而是定程度的变化。在上面的加新的数字。这意味着如果我们实现个新的图形我们不需要修改 方法。 让我们想象种情况需要修改程序使其计算接收到的图形的面积总和但仅计算面积大于 平方单位的图形。该方法并未禁止此类修改因此在这种情况下您可以更改它甚至必须更改它否则将无法实现新功能。 这段代码当然可以工作但它不是正确的解决方案。对大于 个平方单位的字段进行求和的要求可能会发生变化例如仅添加矩形。

回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|自動贊助|GameHost抗攻擊論壇  

GMT+8, 2025-2-8 12:37 , Processed in 0.204362 second(s), 4 queries , File On.

抗攻擊 by GameHost X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表
一粒米 | 中興米 | 論壇美工 | 設計 抗ddos | 天堂私服 | ddos | ddos | 防ddos | 防禦ddos | 防ddos主機 | 天堂美工 | 設計 防ddos主機 | 抗ddos主機 | 抗ddos | 抗ddos主機 | 抗攻擊論壇 | 天堂自動贊助 | 免費論壇 | 天堂私服 | 天堂123 | 台南清潔 | 天堂 | 天堂私服 | 免費論壇申請 | 抗ddos | 虛擬主機 | 實體主機 | vps | 網域註冊 | 抗攻擊遊戲主機 | ddos |