zoukankan      html  css  js  c++  java
  • 2017《面向对象程序设计》课程作业七

    2017《面向对象程序设计》课程作业七

    简单工厂模式的理解

    首先安利一篇有关简单工厂模式的博文,比较简面用C++概述了简单工厂模式。而我相对于对这种模式的认知,更多的也是基于一种实例化对象的方法,也是我接触的第一种工厂模式。如题目中的意思所说,基类Random像是一间工厂,而工厂所生产的产品则有RandomNumber类、RandomOperation类,所共同具有的功能即为random(),而工厂则分别判断对象来创建不同的产品并且使用其功能。而我们作为使用这些产品的人则不用关注产品实现的过程,而只是通过使用父类的指针来完成这样的一件事情。这样做也能降低了板块之间的耦合程度,挺符合低耦合的程序设计理念。

    class Random
    {
    public:
    	virtual void random() {}//基类虚函数
    	Random() { tempf = 1; }
    private:
    	int tempf;
    };
    class RandomNumber :public Random
    {
    public:
    	void random();//派生类RandomNumber的覆盖
    	void get_n(int &a, int &b, int &c, int &d);
    private:
    	int tempa,tempb,tempc,tempd;
    };
    class RandomOperation :public Random
    {
    public:
    	void random();//派生类RandomOperation的覆盖
    	void get_o(string &temp);
    private:
    	string tempo;
    };
    

    通过使用虚函数来实现多态,并且在函数中使用父类的指针来完成子类的random

    Random *r; //父类指针
    r = new RandomNumber;
    r->random();//通过父类指针接口实现函数
    

    git链接

    git

    继承和多态的思想

    在我个人的理解上,继承与多态是密不可分的,继承是通过子类继承父类,使子类具有父类的各自属性,简化了代码,优化了性能。而多态则是实例化一个接口,通过执行不同的操作,很好增加了程序的可拓展性,并且运行速度快,灵活度高,降低了程序的耦合程度,实现高内聚,低耦合。这些也是C++4个特性中较为重要的两个地方。在继承方面我也发现了虚函数的重要作用,对于虚函数调用来说,每一个对象内部都有一个虚表指针,虚表可以继承,如果子类没有重写虚函数,那么子类虚表中仍然会有该函数的地址,只不过这个地址指向的是基类的虚函数实现。

    感想

    通过这次作业,很好将上次课程中刚学习到的继承的知识应用到了博客作业当中,同时也了解了一下多态以及虚函数的使用,(当然之前学过的运算符重再也算是多态的实现吧)这些都是在实践简单工厂模式的过程中逐步学习的,也算是learning by doing

  • 相关阅读:
    C#与JAVA平台RSA算法交互示例
    .NET_RSA加密全接触(重、难点解析)
    .NET和java的RSA互通,仅此而已
    数据库面试常问的一些基本概念
    亿级Web系统搭建——单机到分布式集群
    (译) JSON-RPC 2.0 规范(中文版)
    有趣的 Mysql 存储引擎
    zend opcache的最佳设置
    PHP注释的艺术——phpDoc规范
    说说$POST 、$HTTP_RAW_POST_DATA、php://input三者之间的区别
  • 原文地址:https://www.cnblogs.com/tomvii/p/6952732.html
Copyright © 2011-2022 走看看