pengantar
Saya menerapkan kelas Java abstrak dari kerangka kerja pemrosesan *. Dengan menerapkan fungsi ini execute
, saya dapat menambahkan fungsionalitas logis bisnis. Saya ingin menambahkan pencatatan pada awal dan akhir setiap implementasi dari setiap fungsi eksekusi saya. Juga di antara beberapa penebangan, jika hal-hal tertentu dilakukan. Namun, saya ingin membuatnya secara seragam. Pikir saya adalah untuk mewarisi kelas kerangka kerja ke kelas baru sendiri yang mengimplementasikan logging dan menyediakan beberapa executeWithLogging
fungsi baru , yang membungkus logging di sekitar bagian-bagian tertentu. Saya tidak yakin apakah itu ide terbaik dan apakah saya dapat menggunakan pola desain yang akan membuat keseluruhan usaha menjadi elegan. Bagaimana saya akan melanjutkan semua ini?
Tantangan (harap pertimbangkan ini!)
- Satu tantangan dalam kasus saya adalah bahwa kelas asli hanya memiliki satu
execute
fungsi, namun, saya perlu masuk ke beberapa bagian. - Hal kedua adalah: Menggunakan pola dekorator (adalah ide pertamaku juga) tidak berfungsi, jika saya menggunakan juga a
execute
, karenasuper.execute()
-fungsi harus dipanggil di baris pertama baru sayaexecute()
, bukan ? - Setidaknya akan ada 4 kelas yang terlibat:
BaseFunction
dari kerangka kerja,LoggingFunction extends BaseFunction
dari saya,MyBusinessFunction extends LoggingFunction
dari saya,MyBusinessClass
yang instanciatesMyBusinessFunction
. - Saya tidak hanya perlu login di awal dan akhir
execute
, tetapi juga di tengah. - "Pencatatan" bukan hanya pencatatan Java sederhana, tetapi sebenarnya pencatatan ke basis data. Ini tidak mengubah apa pun tentang prinsip-prinsip tersebut, tetapi menunjukkan bahwa logging mungkin lebih dari satu baris kode.
Mungkin contoh bagaimana saya melakukan semuanya akan menyenangkan, untuk membuat saya maju.
| * Fungsi Badai Trident, mirip dengan baut Storm, tetapi ini tidak terlalu penting.
execute
dalam BaseFunction
abstrak?
execute
abstrak dalam BaseFunction
.