Saya telah membaca tentang pola kenang-kenangan dari berbagai sumber internet. Perbedaan informasi dari sumber yang berbeda membuat saya bingung mengenai mengapa pola ini sebenarnya dibutuhkan.
The dofactory implementasi mengatakan bahwa tujuan utama dari pola ini adalah untuk mengembalikan keadaan sistem.
Wiki mengatakan bahwa tujuan utamanya adalah untuk dapat mengembalikan perubahan pada sistem. Ini memberikan dampak yang berbeda - mengatakan bahwa ada kemungkinan sistem memiliki implementasi kenang-kenangan tanpa perlu memulihkan. Dan kemampuan mengembalikan itu adalah fitur dari ini.
OODesign mengatakan itu
Kadang-kadang diperlukan untuk menangkap keadaan internal suatu objek di beberapa titik dan memiliki kemampuan untuk mengembalikan objek ke keadaan itu nanti. Kasus seperti ini berguna jika terjadi kesalahan atau kegagalan.
Jadi, pertanyaan saya adalah mengapa kita menggunakan ini? Apakah itu untuk menyelamatkan negara-negara sebelumnya - atau untuk mempromosikan enkapsulasi antara Pengurus dan Memento? Mengapa jenis enkapsulasi ini begitu penting?
Sunting: Bagi mereka yang berkunjung, lihat Implementasi ini !
Sunting : Saya sedang bekerja dalam mengimplementasikan solusi kenang-kenangan untuk masalah saya. Saya akan memposting pertanyaan lain tentang itu dan menghubungkan pertanyaan itu dengan yang ini. Terima kasih semua telah merespons dengan saran yang berharga!
Sunting 3 : Berikut adalah tautan ke implementasi sampel saya
sumber
Dengan sendirinya, Pola Memento hanya digunakan untuk menangkap dan menyimpan status. Enkapsulasi hanya ada untuk melindungi negara dari sistem - setelah negara ditangkap, perlu dikontrol dengan hati-hati. Misalnya, tidak masuk akal untuk dapat mengubah keadaan sebelumnya setelah disimpan (itu akan mengubah sejarah) dan mungkin tidak masuk akal untuk hanya kembali ke keadaan sebelumnya dari satu objek tanpa mempengaruhi yang lain (untuk mencegah sistem memasuki kondisi yang sepenuhnya tidak valid).
Penggunaan Memento yang paling umum yang pernah saya lihat adalah untuk mendukung fungsi undo. Ini juga terkait dengan menyimpan fungsi redo dengan bergerak mundur dalam waktu.
sumber
Semua definisi ini mengarahkan Anda ke arah yang sama; mereka semua mengatakan intinya adalah untuk dapat mengembalikan sesuatu ke keadaan sebelumnya. Sesuatu itu bisa menjadi keseluruhan sistem, atau hanya satu objek.
Pola ini berguna jika catatan berubah status dari waktu ke waktu, tetapi Anda memiliki persyaratan bisnis untuk dapat mengembalikannya ke keadaan sebelumnya kapan saja. Atau sebagai alternatif, jika Anda harus dapat melihat catatan seperti pada waktu sebelumnya. Jenis persyaratan ini sangat umum di banyak jenis sistem.
sumber