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...