共用方式為


支援商務規則引擎中的類別繼承

「物件導向程式設計」(OOP) 語言的其中一個主要功能為繼承。 繼承是指可以使用現有類別的所有功能,並且不需重新撰寫原始類別即可擴充這些功能。

「商務規則架構」支援兩種類型的類別繼承:實作和介面。 實作繼承是指不需撰寫額外的程式碼,即可使用基底類別的屬性與方法。 介面繼承是指只能使用屬性與方法的名稱,但是子類別必須提供實作。

這些規則可以根據一般基底類別來撰寫,但是引擎中已判斷提示的物件可以源自衍生類別。 在下列範例中, RegularEmployeeContractEmployee 是基類 Employee的衍生類別。

class Employee  
   {  
      public string Status()  
      {   
         // member definition  
      }  
      public string TimeInMonths()        
      {   
         // member definition  
      }  
   }  
  
class ContractEmployee : Employee  
{  
   // class definition  
}  
class RegularEmployee : Employee  
{  
   // class definition  
}  

假設您有下列規則。

規則 1

IF Employee.TimeInMonths < 12  
THEN Employee.Status = "New"  

在執行時間,如果使用者判斷提示兩個物件,一個 是 ContractEmployee 的實例,另一個是 RegularEmployee的實例,則會根據稍早所述的規則來評估這兩個物件實例。

使用者也可以使用 Assert來判斷提示動作中的衍生類別物件。 這將導致重新評估在條件中包含衍生物件及其基底型別的規則,如下列範例所示。

規則 2

IF Employee.Status = "Contract"   
THEN Employee.Bonus = false  
Assert(new ContractEmployee())  

在其條件中包含 Employee 類型或 ContractEmployee 類型的所有規則,都會在判斷提示之後重新評估。 此範例中的繼承類型為實作。 即使只判斷提示了衍生類別,若使用基底類別而不是衍生類別中的方法來撰寫規則,也會判斷提示基底類別。

另請參閱

規則引擎