Pola desain GOF mana yang sudah diimplementasikan sebagai fitur bahasa kelas satu di C #?


10

(Pertanyaan ini ditutup pada Stack Overflow karena menjadi "terlalu luas" dan "bukan pertanyaan nyata" jadi mungkin lebih cocok di sini?)

Terinspirasi oleh pertanyaan ini . Kami tahu acara adalah implementasi pola Observer tingkat bahasa. Apakah ada pola desain lain yang diterapkan sebagai fitur bahasa di C #? Saya ingin menyimpan pertanyaan ini C # -spesifik karena ada banyak pola desain yang diterapkan dalam bahasa lain, dan saya ingin tetap fokus.

Saya tidak mencari implementasi pola di BCL (seperti dekorator di banyak kelas WCF atau Metode Pabrik di WebClient), tetapi pola tingkat bahasa .

Sejauh ini saya mengetahui observer ( event) dan iterator ( foreachdikombinasikan dengan banyak kelas dan antarmuka BCL). Mungkin ada yang jelas lainnya yang saya lewatkan.

Jawaban:


1

Delegasi adalah pola strategi de facto


lucu, baru kemarin seorang kolega mengatakan delegasi adalah implementasi dari pola perintah. Tergantung pada bagaimana Anda melihatnya, saya kira (perintah afaik harus merangkum argumen juga, tetapi dalam kasus metode tanpa argumen ..)
stijn

1
Saya tidak akan mengatakan delegasi adalah implementasi dari pola perintah, setidaknya saya tidak bisa melihat bagaimana Anda bisa mengimplementasikan hal-hal seperti undo / redo hanya menggunakan delegasi. Mereka mungkin menjadi bagian dari objek perintah tapi itu masalah lain
Homde

0

Metode penyuluhan adalah abstraksi dari pola Dekorator.


Tidak juga. Penghias memungkinkan kita untuk menyusun objek saat run-time untuk menambahkan data dan perilaku.
Martin Doms

1
Benar - jadi mereka hampir tidak berguna seperti pola dekorator nyata. Akankah lebih baik untuk mengatakan bahwa banyak masalah yang diselesaikan dengan metode ekstensi diselesaikan dengan pola dekorator dalam bahasa lain?
vstrien
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.