Discuz! Board

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

想要实现各种类型的车辆

[複製鏈接]

1

主題

1

帖子

5

積分

新手上路

Rank: 1

積分
5
跳轉到指定樓層
樓主
發表於 2023-12-20 17:54:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
这是一个相对简单易懂的原则,但其应用与其他 原则一样重要。遵循它可以让我们保持代码的顺序,避免必须强制执行某些操作的复杂接口和类行为。通过使用专门的接口,我们还可以根据它们的职责选择更好的名称,这使得我们的代码更具可读性。 使用示例 举个例子,让我们假设我们以及这些车辆可以使用类生成的行为。车辆可以驾驶、飞行或游泳 所以让我们从实现车辆接口开始: 然后让我们继续实施特定的车辆。

在此示例中,这些将是汽车、船舶和飞机这三个类别: 乍一看,您可以看到这种 接口的构造带来了多大的问题,因为它需要实现 、 和 方法。众所周知,汽车只能行驶,因此在 和 方法中它会抛出异常并带有适当的消息, 类的工作方式相同,因为船只能游泳,并且也必须为其他方法 C级联系人列表 抛出异常。对于飞机,两种方法都是合理的,因为飞机既可以在起落架上飞行,也可以在空中飞行,但对于 方法,必须抛出异常。


此类代码违反了接口隔离原则,因为 接口不是专门化的,并且强制实现并非所有类都需要的方法。这个接口太通用并且包含太多的实现可能性。 那么我们如何更改代码,使其满足接口隔离原则,同时允许实现汽车可以行驶、轮船可以游泳、飞机可以驾驶和飞行呢? 这些活动中的每一个都应该被分成一个单独的接口,以便实现可以根据需要的活动选择它实现的接口。 因此,让我们创建三个适当的接口 、 和 : 以这种方式设计的接口是专门的,并且具有术语,根据这些术语我们能够确定它们到底负责什么。



回復

使用道具 舉報

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

本版積分規則

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

GMT+8, 2026-7-20 12:11 , Processed in 0.041477 second(s), 13 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 |