儘管從技術上來講,分類裏能夠聲明屬性,可是這種作法仍是要儘可能避免,緣由在於,除了 class-continuation 分類(延展)以外,其餘分類都沒法向類中新增實例變量,所以,他們沒法把實現屬性所需的實例變量合成出來。
spa
正確作法是把全部屬性都定義在主接口中,這是惟一可以定義實例變量的地方。而屬性只是定義實例變量及相關存取方法所用的「語法糖」,全部也應遵循同實例變量同樣的規則。接口
至於分類機制,則應該將其理解爲一種手段,目標在於擴展類的功能,而非封裝數據io
封裝數據所用的所有屬性都定義在主接口中class
在class-continuation外其餘分類中,能夠定義存取方法,但儘可能不要定義屬性
變量