zoukankan      html  css  js  c++  java
  • 派生类&简单工厂模式

    派生类&简单工厂模式

    git链接:
    Operation3.1.1

    题目描述的代码部分的解释

    首先是声明一个Rand类作为父类,然后两个子类RandNumber类和RandOperation类,分别是随机生成0~9的数字和各种符号。
    如果加上工厂的话,就是再写个RandFactory类,然后生产不同的两个类对象。(不过我写了工厂,代码中具体却没有实现它,感觉用不到。)

    class Rand
    {
     public:
        virtual int randNum(); //随机数0-9 所以子类RandNumber可以不用重写该方法了
    
    };
    class RandNumber : public Rand
    {
    public:                   //默认构造析构函数了。
    
    };
    class RandOperation : public Rand
    {
    public:
    	int randNum();        //重写生成随机数 对应不同的符号
    	char symbol(int i);   //生成符号
    
    };
    class RandFactory       // 随机数工厂
    {
    public:
    	Rand* create(int type)   //创建产品 ,由type来决定哪个产品
    	{
    		Rand* temp = NULL;
    		switch(type)
    		{
    		case 1: temp = new RandNumber();
    			break;
    		case 2: temp = new RandOperation();
    			break;
    		default:
    			break;
    		}
    		return temp;
    	}
    
    };
    

    简单工厂模式的学习

           对于这个学习的话,我是通过看别人的博客心得,毕竟这也是一种设计模式(工厂模式、抽象工厂模式之类的等等),或者看看官方文档。不过看别人写得文章就已经可以很好的理解了。
    所谓的简单工厂模式,通过参数传递来决定要创建哪一个具体产品。
    若不需延迟实例化(将实例化放到子类中),则在Factory中增加对应的创建方法即可,如:Product* CreateConcreteProduct(int i);
    若需要延迟实例化,则在抽象Factory与具体ConcreteFactory中增加相应方法,在ConcreteFactory中实现方法Product* CreateConcreteProduct(int i)

  • 相关阅读:
    .Net中通过反射技术的应用插件程序的开发入门
    html超链接button
    WCF 跨域 Http绑定
    在ASP.NET MVC中修改默认代码生成/支架模板
    使用Lambda表达式重构委托
    使用公用表表达式(CTE)简化嵌套SQL
    WCF同域动态绑定服务地址
    WCF 跨域TCP绑定
    Silverlight 基础收集
    WCF服务控制台托管方法(不使用配置文件)
  • 原文地址:https://www.cnblogs.com/yyf031602438/p/6959250.html
Copyright © 2011-2022 走看看