Bekerja dengan corak reka bentuk Adapter

Corak reka bentuk adalah penyelesaian untuk masalah dan kerumitan berulang dalam reka bentuk perisian. Corak reka bentuk dikategorikan sebagai Creational, Structural, atau Behavioral. Corak penciptaan digunakan untuk membuat dan mengurus mekanisme membuat contoh kelas. Corak struktur digunakan untuk mewujudkan hubungan antara entiti. Corak reka bentuk tingkah laku menangani kolaborasi objek dan penyerahan tanggungjawab.

Corak Adapter adalah corak reka bentuk struktur yang bertindak sebagai jambatan antara dua antara muka yang tidak serasi. Istilah "Adapter" digunakan untuk mewakili objek yang memungkinkan dua antara muka yang tidak sesuai untuk berkomunikasi dan bekerjasama. Pada hakikatnya, corak Adapter membolehkan kelas (yang mempunyai antara muka yang tidak serasi) untuk bekerjasama dan objeknya berkomunikasi jika perlu.

Terdapat beberapa jenis penyesuai yang menerapkan antara muka Sasaran dan Adaptee. Jenis Adaptor seperti ini dikenali sebagai penyesuai Dua Hala. Anda juga mempunyai dua jenis penyesuai yang berbeza iaitu, Adaptor Kelas dan Adaptor Objek. Walaupun yang pertama menggunakan warisan, yang kedua menggunakan komposisi untuk menyelesaikan masalah ketidaksesuaian dalam reka bentuk anda. Anda boleh menggunakan corak reka bentuk penyesuai apabila anda perlu menggunakan perpustakaan pihak ketiga yang tidak sesuai dengan jenis yang ada dalam aplikasi anda.

Berikut adalah senarai jenis yang mengambil bahagian dalam pelaksanaan khas pola Adaptor:

  • Sasaran
  • Penyesuai
  • Adaptee
  • Pelanggan

Mari kita fahami ini dengan contoh. Katakan dua orang yang bertutur dan memahami bahasa yang berbeza perlu berkomunikasi - satu mungkin orang Perancis dan Jerman yang lain. Oleh itu, kedua-dua orang ini hanya boleh bertutur dan memahami bahasa Perancis dan Jerman sahaja - bukan kedua-duanya. Anda biasanya memerlukan seseorang (jurubahasa) yang mengetahui kedua-dua bahasa ini untuk memudahkan komunikasi. Jadi, orang yang dapat memudahkan komunikasi ini bertindak sebagai penyesuai.

Corak ini tergolong dalam kategori struktur kerana anda akan menggunakan corak ini untuk menyusun jenis dalam aplikasi kami - biasanya corak ini dapat mengubah satu antara muka menjadi yang lain. The Gang of Four mendefinisikan corak Adapter sebagai "Menukarkan antara muka kelas menjadi antara muka lain yang diharapkan pelanggan. Adaptor membolehkan kelas bekerja bersama yang tidak dapat dilakukan kerana antara muka yang tidak serasi."

Mari cari beberapa kod sekarang. Pertimbangkan dua kelas berikut.

public class TargetA

            {

                public void DisplayA()

                {

                    Console.WriteLine("TargetA");

                }

            }

            public class TargetB

            {

                public void DisplayB()

                {

                    Console.WriteLine("TargetB");

                }

            }

Seperti yang anda lihat, kedua-dua kelas tidak serasi - mereka juga tidak mempunyai asas yang sama Penyenaraian kod berikut menunjukkan bagaimana kelas penyesuai.

public interface ITargetAdapter

            {

                void ProcessData();

            }

public class AdapterA : ITargetAdapter

            {

                 public TargetA targetA { get; set; }

                 public void Process()

                 {

                     targetA.DisplayA();

                 }

                 public AdapterA(TargetA obj)

                 {

                     targetA = obj;

                 }

            }

            public class AdapterB : ITargetAdapter

            {

                 public TargetB targetB { get; set; }

                 public void Process() { targetB.DisplayB(); }

                 public AdapterB(TargetB obj)

                 {

                     targetB = obj;

                 }

            }

Perhatikan bahawa kedua-dua kelas penyesuai mempunyai satu antara muka biasa bernama ITargetAdapter yang dilaksanakan oleh kelas-kelas ini. Setiap kelas penyesuai mempunyai pembina argumen yang menerima rujukan ke objek dari kelas sasaran masing-masing. Antaramuka ITargetAdapter mengandungi pengisytiharan kaedah Proses (). Kaedah ini dilaksanakan oleh kedua-dua kelas penyesuai - kaedah ini menggunakan Display () dan kaedah paparan masing-masing dari kelas sasaran yang kami laksanakan sebelumnya.

Penyenaraian kod berikut menggambarkan bagaimana anda boleh menggunakan kelas penyesuai ini.

class Program

    {

        static void Main(string[] args)

        {

            ITargetAdapter adapter = new AdapterA(new TargetA());

            adapter.Process();

            adapter = new AdapterB(new TargetB());

            adapter.Process();

            Console.Read();

        }

Seperti yang anda lihat dalam coretan kod di atas, kita perlu menyampaikan contoh kelas sasaran masing-masing kepada pembangun kelas penyesuai.

Saya akan membentangkan perbincangan mengenai lebih banyak corak reka bentuk dalam catatan saya yang akan datang di sini. Corak reka bentuk Adapter boleh menjadi pilihan yang baik apabila anda perlu menggunakan kod lama dalam aplikasi anda. Anda boleh mengetahui lebih lanjut mengenai corak reka bentuk Penyesuai dari artikel ini.