Rumah pembangunan bahagian belakang Tutorial C#.Net C#简单工厂模式是什么?

C#简单工厂模式是什么?

Jun 23, 2017 pm 04:18 PM
.net belajar kilang model nota Mudah

题目:做一个商场收银的小程序,可能会出现的情况包括:正常收费,九折优惠,七折优惠,满300减50等各种不同随时会变化的优惠活动。

界面如下:

 

分析:

首先我们对于收钱写一个父类CashSuper。这个父类是用来包含其他的各种收费方式的:正常收费、七折优惠、八折优惠、九折优惠、满300减50、满400减70、满500减100等情况,其中折扣优惠虽然不同,但是类型相似,满减优惠同理,故此我们可以将正常收费、折扣优惠与满减优惠分别划分为三个不同的类:CashNormal、CashRebate、CashReturn。

而CashSuper这个父类是用于继承的,所以我们设置为abstract用来被重写的,其次这个父类所包含的的三个子类都会共同调用到一个参数:那就是实际需要收到的商品的价格,所以我们的参数只需要传进来共同的参数:acceptMoney即可。

1 abstract class CashSuper2     {3         public abstract double acceptCash(double acceptMoney);4     }
Salin selepas log masuk

然后就是正常收费:CashNormal

首先他从父类获得参数是实际需要收到的商品的价格,他本身事正常收费没有任何的优惠,所以直接返回从父类传进来的值即可。

1     class CashNormal : CashSuper2     {3         public override double acceptCash(double acceptMoney)4         {5             return acceptMoney;6         }7     }
Salin selepas log masuk

折扣优惠:CashRebate

他和正常收费类似,继承于父类CashSuper,会获得来自于父类的参数,得到实际需要收到的商品的价格,但是他需要实现的是对商品进行打折优惠,所以他需要自己定义一个折扣优惠参数,这样别人调用他的时候将折扣参数传进来,他就可以通过对原价进行折扣优惠反馈给用户了。

 1     class CashRebate : CashSuper 2     { 3         //这就是cashrebate的属性了 4         private double monRebate = 1; 5  6         //调用CashRebate的时候需要从外面将优惠程度传进来 7         public CashRebate(string moneyRebate) 8         { 9             this.monRebate = double.Parse(moneyRebate);10         }11 12         public override double acceptCash(double acceptMoney)13         {14             return acceptMoney * monRebate;15         }16     }
Salin selepas log masuk

满减优惠:CashReturn

这个与折扣优惠类似了,只是他有两个参数而已:满减的水平线,和减扣多少。故此给此类定义两个参数即可。

 1     class CashReturn : CashSuper 2     { 3         //这就是cashreturn的属性了 4         private double CashLevel = 0; 5         private double MoneyReturn = 0; 6  7         //对外调用函数所以必须是public 8         public CashReturn(string level,string MonReturn) 9         {10             this.CashLevel = double.Parse(level);11             this.MoneyReturn = double.Parse(MonReturn);12         }13 14         public override double acceptCash(double acceptMoney)15         {16             double result = acceptMoney;17             if (acceptMoney >= CashLevel)18             {19                 result = acceptMoney - Math.Floor(acceptMoney / CashLevel) * MoneyReturn;20             }21             return result;22         }23     }
Salin selepas log masuk

现在获得了几种优惠情况了,但是我们需要判断什么时候需要调用哪种优惠情况,这点我们通过用户的选择,用户将选择的优惠方式传输过来,我们再确定调用哪一种优惠方式,这就是利用简单工厂模式,将所有的优惠方式封装好,在进一步调用。

 1     class CashFactory 2     { 3         //CashSuper现在就类似double之类,返回值就是CashSuper 4         public static CashSuper createCashAccept(string type) 5         { 6             CashSuper cs = null; 7  8             switch (type) 9             {10                 case "正常收费":11                     cs = new CashNormal();12                     break;13                 case "满300减50":14                     cs = new CashReturn("300", "50");15                     break;16                 case "满500减100":17                     cs = new CashReturn("500", "100");18                     break;19                 case "满400减70":20                     cs = new CashReturn("400", "70");21                     break;22                 case "满900减200":23                     cs = new CashReturn("900", "200");24                     break;25                 case "八折优惠":26                     cs = new CashRebate("0.8");27                     break;28                 case "九折优惠":29                     cs = new CashRebate("0.9");30                     break;31                 case "七折优惠":32                     cs = new CashRebate("0.7");33                     break;34             }35             return cs;36         }37     }
Salin selepas log masuk

最后在用户接口调用上面的函数即可。

 1         private void ok_button_Click(object sender, EventArgs e) 2         { 3             /**对外这边需要了解两个函数 4              * 1.CashFactory.createCashAccept,这个是为了确定每一次的购物时调用的哪一种优惠方式 5              * 2.csuper.acceptCash,这个是为了获得每种优惠方式获得的优惠结果 6              */ 7             CashSuper csuper = CashFactory.createCashAccept(typecomboBox.SelectedItem.ToString()); 8              9             totalPrices = csuper.acceptCash(double.Parse(unitPrice_textBox.Text) * double.Parse(amount_textBox.Text));10             total += totalPrices;11             listBox1.Items.Add("单价:" + unitPrice_textBox.Text.ToString() + " 数量:" + amount.ToString() + "  " + typecomboBox.SelectedItem.ToString() + " 合计:" + totalPrices.ToString());12             resultLabel.Text = total.ToString();13         }
Salin selepas log masuk

 

Atas ialah kandungan terperinci C#简单工厂模式是什么?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara paling mudah untuk menanyakan nombor siri cakera keras Cara paling mudah untuk menanyakan nombor siri cakera keras Feb 26, 2024 pm 02:24 PM

Nombor siri cakera keras ialah pengecam penting cakera keras dan biasanya digunakan untuk mengenal pasti cakera keras secara unik dan mengenal pasti perkakasan. Dalam sesetengah kes, kami mungkin perlu menanyakan nombor siri cakera keras, seperti semasa memasang sistem pengendalian, mencari pemacu peranti yang betul atau melakukan pembaikan cakera keras. Artikel ini akan memperkenalkan beberapa kaedah mudah untuk membantu anda menyemak nombor siri cakera keras. Kaedah 1: Gunakan Windows Command Prompt untuk membuka command prompt. Dalam sistem Windows, tekan kekunci Win+R, masukkan "cmd" dan tekan kekunci Enter untuk membuka arahan

Bagaimana untuk memadam nota Xiaohongshu Bagaimana untuk memadam nota Xiaohongshu Mar 21, 2024 pm 08:12 PM

Bagaimana untuk memadamkan nota Xiaohongshu? pandangan! Tutorial penggunaan Xiaohongshu Cara memadam nota Xiaohongshu 1. Mula-mula buka APP Xiaohongshu dan masukkan halaman utama, pilih [Saya] di sudut kanan bawah untuk memasuki kawasan khas 2. Kemudian di kawasan Saya, klik pada halaman nota sebagai ditunjukkan di bawah , pilih nota yang anda mahu padamkan;

Apakah yang dilakukan oleh mod Jangan Ganggu WeChat? Apakah yang dilakukan oleh mod Jangan Ganggu WeChat? Feb 23, 2024 pm 10:48 PM

Apakah maksud mod Jangan Ganggu WeChat Pada masa kini, dengan populariti telefon pintar dan perkembangan pesat Internet mudah alih, platform media sosial telah menjadi bahagian yang amat diperlukan dalam kehidupan seharian orang ramai. WeChat ialah salah satu platform media sosial paling popular di China, dan hampir semua orang mempunyai akaun WeChat. Kita boleh berkomunikasi dengan rakan, keluarga dan rakan sekerja dalam masa nyata melalui WeChat, berkongsi detik dalam hidup kita dan memahami situasi semasa satu sama lain. Namun begitu, dalam era ini, sudah pasti kita juga berdepan dengan masalah sarat maklumat dan kebocoran privasi terutamanya bagi mereka yang perlu fokus atau

Apakah yang perlu saya lakukan jika nota yang saya siarkan di Xiaohongshu tiada? Apakah sebab mengapa nota yang dihantar tidak ditemui? Apakah yang perlu saya lakukan jika nota yang saya siarkan di Xiaohongshu tiada? Apakah sebab mengapa nota yang dihantar tidak ditemui? Mar 21, 2024 pm 09:30 PM

Sebagai pengguna Xiaohongshu, kita semua pernah menghadapi situasi di mana nota yang diterbitkan tiba-tiba hilang, yang sudah pasti mengelirukan dan membimbangkan. Dalam kes ini, apa yang perlu kita lakukan? Artikel ini akan menumpukan pada topik "Apa yang perlu dilakukan jika nota yang diterbitkan oleh Xiaohongshu hilang" dan memberi anda jawapan terperinci. 1. Apakah yang perlu saya lakukan jika nota yang diterbitkan oleh Xiaohongshu tiada? Pertama, jangan panik. Jika anda mendapati nota anda tiada, bertenang adalah kunci dan jangan panik. Ini mungkin disebabkan oleh kegagalan sistem platform atau ralat operasi. Menyemak rekod keluaran adalah mudah. Cuma buka Apl Xiaohongshu dan klik "Saya" → "Terbitkan" → "Semua Penerbitan" untuk melihat rekod penerbitan anda sendiri. Di sini anda boleh mencari nota yang disiarkan sebelum ini dengan mudah. 3.Siaran semula. Jika dijumpai

Cara menambah pautan produk dalam nota dalam Xiaohongshu Tutorial menambah pautan produk dalam nota dalam Xiaohongshu Cara menambah pautan produk dalam nota dalam Xiaohongshu Tutorial menambah pautan produk dalam nota dalam Xiaohongshu Mar 12, 2024 am 10:40 AM

Bagaimana untuk menambah pautan produk dalam nota dalam Xiaohongshu? Dalam aplikasi Xiaohongshu, pengguna bukan sahaja boleh menyemak imbas pelbagai kandungan tetapi juga membeli-belah, jadi terdapat banyak kandungan tentang cadangan membeli-belah dan perkongsian produk yang baik dalam aplikasi ini pada aplikasi ini, anda juga boleh berkongsi beberapa pengalaman membeli-belah, mencari peniaga untuk kerjasama, menambah pautan dalam nota, dll. Ramai orang sanggup menggunakan aplikasi ini untuk membeli-belah, kerana ia bukan sahaja mudah, tetapi juga mempunyai ramai Pakar akan membuat beberapa cadangan Anda boleh menyemak imbas kandungan yang menarik dan melihat sama ada terdapat produk pakaian yang sesuai dengan anda. Mari lihat cara menambah pautan produk pada nota Cara menambah pautan produk ke Xiaohongshu Notes Buka aplikasi pada desktop telefon mudah alih anda. Klik pada halaman utama apl

Mod Jangan Ganggu Tidak Berfungsi dalam iPhone: Betulkan Mod Jangan Ganggu Tidak Berfungsi dalam iPhone: Betulkan Apr 24, 2024 pm 04:50 PM

Malah menjawab panggilan dalam mod Jangan Ganggu boleh menjadi pengalaman yang sangat menjengkelkan. Seperti namanya, mod Jangan Ganggu mematikan semua pemberitahuan panggilan masuk dan makluman daripada e-mel, mesej, dsb. Anda boleh mengikuti set penyelesaian ini untuk membetulkannya. Betulkan 1 – Dayakan Mod Fokus Dayakan mod fokus pada telefon anda. Langkah 1 – Leret ke bawah dari atas untuk mengakses Pusat Kawalan. Langkah 2 – Seterusnya, dayakan “Mod Fokus” pada telefon anda. Mod Fokus mendayakan mod Jangan Ganggu pada telefon anda. Ia tidak akan menyebabkan sebarang makluman panggilan masuk muncul pada telefon anda. Betulkan 2 – Tukar Tetapan Mod Fokus Jika terdapat beberapa isu dalam tetapan mod fokus, anda harus membetulkannya. Langkah 1 – Buka tetingkap tetapan iPhone anda. Langkah 2 – Seterusnya, hidupkan tetapan mod Fokus

Mendedahkan daya tarikan bahasa C: Mendedahkan potensi pengaturcara Mendedahkan daya tarikan bahasa C: Mendedahkan potensi pengaturcara Feb 24, 2024 pm 11:21 PM

Pesona Pembelajaran Bahasa C: Membuka Potensi Pengaturcara Dengan perkembangan teknologi yang berterusan, pengaturcaraan komputer telah menjadi satu bidang yang telah menarik perhatian ramai. Di antara banyak bahasa pengaturcaraan, bahasa C sentiasa digemari oleh pengaturcara. Kesederhanaan, kecekapan dan aplikasinya yang luas menjadikan pembelajaran bahasa C sebagai langkah pertama untuk ramai orang memasuki bidang pengaturcaraan. Artikel ini akan membincangkan daya tarikan mempelajari bahasa C dan cara membuka kunci potensi pengaturcara dengan mempelajari bahasa C. Pertama sekali, daya tarikan mempelajari bahasa C terletak pada kesederhanaannya. Berbanding dengan bahasa pengaturcaraan lain, bahasa C

Mari belajar cara memasukkan nombor akar dalam Word bersama-sama Mari belajar cara memasukkan nombor akar dalam Word bersama-sama Mar 19, 2024 pm 08:52 PM

Semasa mengedit kandungan teks dalam Word, anda kadangkala perlu memasukkan simbol formula. Sesetengah lelaki tidak tahu cara memasukkan nombor akar dalam Word, jadi Xiaomian meminta saya untuk berkongsi dengan rakan saya tutorial tentang cara memasukkan nombor akar dalam Word. Semoga membantu kawan-kawan. Mula-mula, buka perisian Word pada komputer anda, kemudian buka fail yang ingin anda edit, dan gerakkan kursor ke lokasi yang anda perlukan untuk memasukkan tanda akar, rujuk contoh gambar di bawah. 2. Pilih [Sisipkan], dan kemudian pilih [Formula] dalam simbol. Seperti yang ditunjukkan dalam bulatan merah dalam gambar di bawah: 3. Kemudian pilih [Insert New Formula] di bawah. Seperti yang ditunjukkan dalam bulatan merah dalam gambar di bawah: 4. Pilih [Radical], dan kemudian pilih radikal yang sesuai. Seperti yang ditunjukkan dalam bulatan merah dalam gambar di bawah:

See all articles