Java SOLID design rule

 Java 的SOLID設計原則

SOLID 原則

是一組設計原則,用於提高軟體的可維護性和擴展性。在Java中,SOLID 原則包括:




1. 單一職責原則(Single Responsibility Principle,SRP):一個類別應該只有一個修改的理由,即應該只有一個職責。


2. 開放/封閉原則(Open/Closed Principle,OCP):軟體實體(類別、模組、函數等)應該是可以擴展的,但不可修改。


3. 里氏替換原則(Liskov Substitution Principle,LSP):派生類別必須能夠替換其基底類別而不影響程式的正確性。


4. 介面隔離原則(Interface Segregation Principle,ISP):不應該強迫一個類別實作它用不到的介面。


5. 依賴反轉原則(Dependency Inversion Principle,DIP):高層次的模組不應該依賴低層次的模組,兩者都應該依賴於抽象。

開放封閉原則(OCP, open close principle)

- y=f(x) , x為程式碼, f( )為原則

- 物件導向程式設計的基本原則

- SOLID原則的一部分

- 核心思想為

  + 軟體實體(如類別、模組、函數)應對擴展(新增)開放,對修改封閉

  + 即在擴充功能時,應新增程式碼,而不是修改程式碼,以降低對現有函數的破壞性更新,確保系統穩定與可靠性

- 實現

  + 使用抽象類別與介面

  + 設計模式如策略模式、工廠模式


考題

解釋子類別替代法則(sub-class substitution rule)。(14 分


子类替代法则(Subclass Substitution Principle)是面向对象编程中的一个重要原则,通常简称为Liskov Substitution Principle(LSP),它是SOLID原则中的一部分,由计算机科学家Barbara Liskov提出。LSP的核心思想是:如果S是T的子类,那么在任何基于T的程序中,都可以用S的实例来替代T,而不会导致程序出错或产生意外行为。


具体来说,子类替代法则要求:


1. 子类必须继承自父类。这是LSP的前提,子类需要是父类的扩展或特化。


2. 子类可以替代父类并被视为父类的实例。这意味着在程序中使用子类的实例时,不会破坏原有程序的正确性和可预测性。


3. 子类可以扩展父类的行为,但不能缩小。这是说子类可以添加新的方法或属性,但不应该修改继承自父类的方法,也不应该降低方法的前置条件(参数限制)或增加方法的后置条件(返回值限制)。


4. 子类应该保持与父类相同的接口。如果一个子类覆盖了父类的方法,那么覆盖后的方法的参数列表和返回类型应该与父类方法一致或更具体。


5. 子类的行为应该是符合预期的。这意味着子类不应该改变继承自父类的方法的基本行为,子类可以添加额外功能,但不能改变继承方法的核心特性。


遵循子类替代法则有助于构建具有良好扩展性和可维护性的面向对象系统。这个原则强调了继承和多态性的正确用法,确保代码的稳定性和可靠性,使得子类可以被灵活地应用而不破坏系统的功能。如果不遵循LSP,可能会导致不稳定的、难以预测的程序行为,增加程序维护的难度。

Comments

Popular posts from this blog

How to write data into a excel file using vbscript

Format date as yyyy-mm-dd using vbscript