scala實現抽象工廠

2021-09-02 12:13:38 字數 1382 閱讀 6127

package com.linewell.modeldesgin.abstractfactory

/*** created by ctao on 2015/8/8.

* 抽象工廠模式

*//**

* **工廠特質

*/trait skinfactory

/*** 按鈕特質

*/trait button

/*** 文字框特質

*/trait textfield

/*** 春天**工廠,生產春天**的文字框和按鈕

*/object springskinfactory extends skinfactory

/*** 春天**文字框

*/class springtextfield extends textfield

/***複寫方法,產生春天**的按鈕

* @return 按鈕特質

*/override def createbutton(): button = new springbutton

/*** 複寫方法,產生春天**的文字框

* @return 文字框特質

*/override def createtextfield(): textfield = new springtextfield

}/**

* 夏天**工廠

*/object summerskinfactory extends skinfactory

/*** 夏天**文字框

*/class summertextfield extends textfield

/*** 複寫方法,產生夏天**按鈕

* @return 按鈕特質

*/override def createbutton(): button = new summerbutton

/*** 複寫方法,產生夏天**文字框

* @return 文字框特質

*/override def createtextfield(): textfield = new summertextfield

}package com.linewell.modeldesgin.abstractfactory

/*** created by ctao on 2015/8/8.

* 測試客戶端

*//**

* 構建**工廠

*/val factory :skinfactory = springskinfactory

/*** 按鈕的展示方法

*/factory.createbutton().display()

/*** 文字框的方法

*/factory.createtextfield().display()

}

反射實現抽象工廠

上篇我們說了介面工廠,接下來我們看看抽象工廠 抽象類用abstract修飾,抽象類不能被例項化,抽象方法必須宣告在抽象類中,抽象型別不一定不需存在抽象方法,具體派生類必須覆蓋基類的抽象方法,抽象派生類可以覆蓋基類的抽象方法也可以不覆蓋 這樣我們就實現了在基類中新增error方法,子類中無需新增,只需...

Scala抽象方法

如果在父類中,有某些方法無法立即實現,而需要依賴不同的子類來覆蓋,重寫實現不同的方法。此時,可以將父類中的這些方法編寫成只含有方法簽名,不含方法體的形式,這種形式就叫做抽象方法 乙個類中,如果含有乙個抽象方法或抽象field,就必須使用abstract將類宣告為抽象類,該類是不可以被例項化的 在子類...

C 實現抽象工廠模式

using system public class fighttank fightiname public class peopletank peopleiname public class fightplane fightiname public class peopleplane peoplei...