· 2.1.3 約束屬性
約束屬性是Beans所支持的最復雜最高級的屬性,它答應收聽者對屬性的改變提出否定意見。
與相關屬性類似,其設計與實現也要涉及到源Bean、目標Bean和協調代碼。只要把相關屬性設計中的property改成Vetoable(除了propertyChangeEvent外),不同的是為了能使目標Bean"反對"源Bean屬性的變化。Beans提供了一種異常propertyVetoException,只要目標Bean收到屬性改變的事件通知后,查看屬性的新值,假如不滿足,可拋出一個異常,讓源Bean放棄改變屬性到這個新值的念頭,這就是約束屬性中給目標Bean增加的"反對權利"。下面的簡單源Bean和目標Bean的偽代碼表述了約束屬性的實現視圖。
·源Bean
新聞熱點
疑難解答