当前位置:首页 > C#学习 > C#练习 > 正文内容

C# 简单工厂模式

小道7年前 (2018-12-06)C#练习5995

C# 简单工厂模式

通过工厂先生产笔记本(抽象类),根据用户需要的品牌(具体类),给用户品牌笔记本。

using System;

namespace 简单工厂设计模式
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入你需要的笔记本:");//提示
            string nBook = Console.ReadLine();//接收用户输入的值
            NoteBook nb = GetNoteBook(nBook);//调用GetNoteBook方法 接收返回值。
            nb.Say();//调用方法
            Console.ReadKey();//按任意键
        }
        static NoteBook GetNoteBook(string nBook)//方法
        {
            NoteBook N = null;//声明NoteBook变量
            switch (nBook)//判断传过来的值 与哪项匹配
            {
                case "Dell":
                    N = new Dell();
                    break;
                case "Acer":
                    N = new Acer();
                    break;
                case "IBM":
                    N = new IBM();
                    break;
            }
            return N;//返回
        }
    }
    abstract class NoteBook//抽象类。笔记本
    {
        public abstract void Say();//抽象方法
    }
    class Dell : NoteBook//笔记本品牌,继承笔记本
    {
        public override void Say()//重写方法
        {
            Console.WriteLine("戴尔笔记本。");
        }
    }
    class Acer : NoteBook//笔记本品牌,继承笔记本
    {
        public override void Say()
        {
            Console.WriteLine("宏碁笔记本.");
        }
    }
    class IBM : NoteBook//笔记本品牌,继承笔记本
    {
        public override void Say()
        {
            Console.WriteLine("IBM笔记本");
        }
    }
}

输出结果:

image.png

扫描二维码推送至手机访问。

版权声明:本文由小道发布,如需转载请注明出处。

本文链接:https://daobk.com/post/137.html

分享给朋友:

“C# 简单工厂模式” 的相关文章

C# 抽象类练习(命名不规范)

C# 抽象类练习(命名不规范)

C# 抽象类练习(命名不规范)using System; namespace 抽象类练习 {     class Program     {    ...

C# MD5 32位加密

C# MD5 32位加密

使用C#的MD5类创建MD5 32位加密。界面设计:密文文本框名称:txtmiwenMD5(32)文本框名称:txtmd532加密按钮名称:Btnjiami        private void B...

C# ComboBox 下拉框 年月日练习

C# ComboBox 下拉框 年月日练习

C# ComboBox 下拉框 年月日练习年下拉框名称:cboY月下拉框名称:cboM日下拉框名称:cboDusing System; using System.Windows.Forms; namespace 年月日 {    ...