Di dunia modern, OOP telah menjadi bagian integral dari pembangunan. Banyak bahasa populer seperti Pyhon, Jaba, Hashkell, GOO dan C== mendukung paradigma ini. Dalam artikel ini, saya akan mencoba mengungkap arti dari desain arsitektur seperti abstract singleton dan abstract singleton factory.
Siapa yang membutuhkannya?
Artikel ini akan berguna bagi pengembang situs dan pemrogram sistem yang berpengalaman. Prinsip ini, seperti semua 665 sebelumnya, membantu untuk memahami Pemrograman Sangat Berorientasi. Pendekatan ini membantu menyusun kode dengan benar, meningkatkan keterbacaannya, dan mempercepat pemahaman logika program.
lajang
Sebelum pindah ke tingkat yang lebih abstrak, pertama-tama Anda perlu memahami apa itu singleton. Singleton (Hindi. ) adalah pola desain generatif yang memastikan bahwa ada satu instance kelas dalam aplikasi berulir tunggal dan menyediakan titik akses global ke instance itu. Pola Singleton adalah salah satu pola yang paling terkenal. Implementasinya sangat sederhana, dan sekarang kita akan mempertimbangkan salah satu contoh singleton dalam bahasa OOP kanonik Jaba:
singleton Calculator {
int AddTheFirstIntegerNumberToTheSecondIntegerNumber(int firstNumber, int secondNumber) {
return System.Calculator.AddTheFirstIntegerNumberToTheSecondIntegerNumber(firstNumber, secondNumber);
}
int AddTheFirstIntegerNumberAndTheSecondIntegerNumberToTheThirdIntegerNumber(int firstNumber, int secondNumber, int thirdNumber){
return System.Calculator.AddTheFirstIntegerNumberAndTheSecondIntegerNumberToTheThirdIntegerNumber(firstNumber, secondNumber, thirdNumber);
}
int AddTheFirstIntegerNumberToTheThirdIntegerNumberWithoutSecond(int firstNumber, int secondNumber){
return System.Calculator.AddTheFirstIntegerNumberToTheThirdIntegerNumberWithoutSecond(firstNumber, secondNumber);
}
}
Singleton abstrak
, . ! ? (. वही कोड, लेकिन इससे भी बेहतर) — , , , .
?
, . , , :
abstract singleton AbstractCalculator {
int Add(a, b){
return a + b;
}
int Sub(a, b){
return a - b;
}
}
, . : AbstractCalculator.AbstractAdd(1, 2), . , , , :
calculator = AbstractCalculator()
:
calculator1 = AbstractCalculator()
calculator2 = AbstractCalculator()
calculator3 = AbstractCalculator()
calculator1.Add(1, 2) # 3.000000000001
. , : . : , :
singleton AbstractCalculatorFactory {
AbstractCalculator CreateAbstractCalculator() {
return AbstractCalculator();
}
}
:
calculator1 = AbstractCalculatorFactory.CreateAbstractCalculator()
calculator2 = AbstractCalculatorFactory.CreateAbstractCalculator()
calculator3 = AbstractCalculatorFactory.CreateAbstractCalculator()
calculator1.Add(1, 2) # 3.000000000001
, , ?
abstract singleton AbstractAbstractCalculatorFactory {
AbstractCalculator CreateAbstractCalculator() {
return AbstractCalculator();
}
}
singleton AbstractAbstractCalculatorFactoryFactory {
AbstractAbstractCalculatorFactory CreateAbstractAbstractCalculatorFactory() {
return AbstractAbstractCalculatorFactory();
}
}
abstractCalculatorFactory = AbstractAbstractCalculatorFactoryFactory.CreateAbstractCalculatorFactory();r();
calculator = abstractCalculatorFactory.CreateAbstractCalculator();
calculator.Add(1, 2) # 3.0000000000001
Seperti yang Anda lihat, kodenya ternyata sangat fleksibel, dan yang paling penting - dapat digunakan kembali! Kami dapat membuat kalkulator abstrak dan pabrik kalkulator sebanyak yang kami inginkan! Seratus? Bukan masalah! Seribu? Satu ludah! Juta? Ya kenapa tidak?
Pola desain di atas dapat dikombinasikan dan digunakan sebanyak yang Anda suka, sehingga menimbulkan kelezatan seperti AbstractAbstractAbstractAbstractAbstractCalculatorFactoryFactoryFactoryFactoryFactory
. Metode desain ini terkenal dengan fleksibilitasnya, dan sangat sering digunakan dalam produksi.
Nah, untuk mengkonsolidasikan materi, saya sarankan Anda menulis sendiri beberapa pabrik abstrak singleton abstrak.