博客
关于我
C#设计模式04——工厂方法的写法
阅读量:415 次
发布时间:2019-03-06

本文共 1840 字,大约阅读时间需要 6 分钟。

抽象产品角色

//鼠标抽象类    public abstract class Mouse    {        public abstract void Print();    }

具体产品角色

//戴尔鼠标    public class DellMouse : Mouse    {        public override void Print()        {            Console.WriteLine("生产了一个Dell鼠标");        }    }
//惠普鼠标    public class HPMouse : Mouse    {        public override void Print()        {            Console.WriteLine("生产了一个惠普鼠标");        }    }
//联想鼠标    public class LenovoMouse : Mouse    {        public override void Print()        {            Console.WriteLine("生产了一个联想鼠标");        }    }

抽象工厂角色

///     ///  鼠标工厂抽象类    ///     public abstract  class MouseFactory    {        public abstract  Mouse CreateMouse();    }

具体工厂角色

//戴尔鼠标工厂    public class DellMouseFactroy : MouseFactory    {        public override Mouse CreateMouse()        {            return new DellMouse();//在具体的工厂中实例化产品        }    }
//惠普鼠标工厂    public class HpMouseFactory : MouseFactory    {        public override Mouse CreateMouse()        {            return new HPMouse();//在具体的工厂中实例化产品        }    }
///     /// 联想鼠标工厂    ///     public class LenovoMouseFactory : MouseFactory    {        public override Mouse CreateMouse()        {            return new LenovoMouse();//在具体的工厂中实例化产品        }    }

运行测试

//生产一个戴尔鼠标                MouseFactory dellMouseFactory = new DellMouseFactroy();                _04工厂模式.Mouse dellMouse = dellMouseFactory.CreateMouse();                dellMouse.Print();                //生产一个惠普鼠标                MouseFactory hpMouseFactory = new HpMouseFactory();                _04工厂模式.Mouse hpMouse = hpMouseFactory.CreateMouse();                hpMouse.Print();                //生产一个联想鼠标                LenovoMouseFactory lenovoMouseFactory = new LenovoMouseFactory ();                _04工厂模式.Mouse lenovoMouse = lenovoMouseFactory.CreateMouse();                lenovoMouse.Print();

 

转载地址:http://uxiuz.baihongyu.com/

你可能感兴趣的文章
Git安装及使用以及连接GitHub方法详解
查看>>
docker容器与虚拟机的区别
查看>>
shell脚本里使用echo输出颜色
查看>>
Python2跟Python3的区别
查看>>
并发编程——IO模型详解
查看>>
Java之封装,继承,多态
查看>>
wait()与notify()
查看>>
使用js打印时去除页眉页脚
查看>>
Spring security OAuth2.0认证授权学习第二天(基础概念-RBAC)
查看>>
ORA-00904: "FILED_TYPE": 标识符无效
查看>>
数据仓库系列之维度建模
查看>>
Scala教程之:函数式的Scala
查看>>
java中DelayQueue的使用
查看>>
线程stop和Interrupt
查看>>
Android中定时执行任务的3种实现方法
查看>>
nodejs中npm常用命令
查看>>
mybatis一个怪异的问题: Invalid bound statement not found
查看>>
基于Vue2.0+Vue-router构建一个简单的单页应用
查看>>
基于vue2.0实现仿百度前端分页效果(二)
查看>>
JS魔法堂:函数重载 之 获取变量的数据类型
查看>>