Discuz! Board

 找回密碼
 立即註冊
搜索
熱搜: 活動 交友 discuz
查看: 2|回復: 0

更改它来完成的而不仅仅是通过编写

[複製鏈接]

1

主題

1

帖子

5

積分

新手上路

Rank: 1

積分
5
發表於 2024-3-21 12:22:01 | 顯示全部樓層 |閱讀模式
下面是此类代码的示例。 该方法的操作非常简单。作为参数它接收个包含几何图形对象的数组然后在后续迭代步骤中计算每个对象的面积。然后它将接收到的值添加到结果中然后返回结果。下面是所用形状的简单实现矩形和三角形。 该代码可以工作并实现其目的即计算收到的数字的总和。不幸的是它写得不好。切都很好直到您需要向应用程序添加新形状例如梯形。让我们看看在这种情况下会发生什么。程序中下个类的实现可能如下所示。 新类的构造函数将梯形的底长和高度作为参数而 返回图形的各个尺寸。

不幸的是这并不是需要对代码进行的唯更改。需要修改 方法使其计算梯形的面积并将其添加到返回的结果中。 需要修改上述方法意味着它不符合所讨论的原则。这是因为向程序添加新功能在本例中是另个几何图形 奥地利电报号码数据 是通过新代码即 类来完成。因此 方法对于添加下个形状是开放的并且应该对其关闭。下面是满足开闭原则的正确代码。 为了改进代码进行了些更改。计算几何图形面积的职责已委托给各个类而 方法仅使用 方法检索此面积。为了实现这点有必要创建个 来实现所有形状以计算并返回其面积。



当引入更多数字时 方法将不需要任何更改。新类实现 接口就足够了。由于多态性的使用满足了开闭原则。 没有变化? 根据开闭原则代码单元应该禁止修改开放扩展。这是否意味着不能对上例中所示的 方法进行任何更改?点也不。这里有必要澄清下代码禁止修改意味着什么。不是什么变化而是定程度的变化。在上面的例子中这样的区域正在添加新的数字。这意味着如果我们实现个新的图形我们不需要修改 方法。 让我们想象种情况需要修改程序使其计算接收到的图形的面积总和但仅计算面积大于 平方单位的图形。

回復

使用道具 舉報

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

本版積分規則

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

GMT+8, 2024-5-7 03:17 , Processed in 1.485618 second(s), 34 queries .

抗攻擊 by GameHost X3.4

© 2001-2013 Comsenz Inc.. 技術支持 by 巔峰設計

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