• 开发经验总结


    面向对象开发思想

    2020年03月15日22:19:22

    要真正理解面向对象设计,学习C++不是一个好的方式。他太大太杂了。
    类和对象的关系可以理解为鸡蛋和土鸡蛋的关系。
    当你想做西红柿炒鸡蛋的时候,你脑子里只有鸡蛋的概念,这就是类,当真正做的时候,手里拿的是土鸡蛋,这就是被实例化的类--对象。

    类的本意是实现概念抽象,其本质是自定义类型,代表了需要申请的内存空间。所以使用的时候需要先实例化类,这样做就是先找到一个内存地址,然后开辟了类大小的内存空间。没有实例化的类是没有起始地址的,也就是没有在内存中存在。

    面向对象编程也是面向接口编程,接口作为模块间的通信方式。通信包括对象间通信和进程间通信,无论什么通信都要有接口。
    功能逻辑分离,功能只实现功能,代理类实现业务和逻辑,调用功能模块,这样做的好处是可以复用功能模块,职责清晰。

    2020年03月22日20:45:59

    面向对象的主要思想是:重用,抽象,面向接口。
    与面向过程不同的是,面向对象注重的是数据组织形式,而不是功能的实现。

    重用导致数据会以最小单元存在,然后以继承关系重新组织。
    一些原始的无任何继承的数据,可以通过建立新的类包含他们,并让新的类继承同一个虚基类,这样这些最小单元数据就有了逻辑上的统一性。通过继承不同的虚基类,可以让这些最小单元实现不同的组织形式。

    以上也是抽象的一部分功能,即在逻辑上将最小单元抽象统一。

    面向接口也是抽象。面向对象一般会通过一个抽象的接口来传递所有子类,这就导致去了解某一个功能时看不懂他在干什么,所以要完全了解接口,恐怕要完全了解他传递了哪些子类。

    有些看不懂的代码,多了很多参数,要么是作为传递一类数据的接口使用的,这就必然给其他一些子类带来了多余的参数;要么就是该类或函数是某人的调试中的类或函数。所以从这两方面理解是个突破口。

    面向接口编程,功能逻辑分离!

    2020年03月28日22:40:09

    语言的学习方法:
    1.数据类型
    数据型,字符串
    2.容器
    容器及其方法
    3.特殊机制
    每种语言都有其独特的内置机制。
    4.库函数
    语言只是一种工具,掌握库函数才能实现具体功能。

    2020年04月06日20:17:20

    事件就是状态变更;
    对标和参考,是快速学习的有效方式,

    2020年04月16日19:29:56

    在面向对象编程中,能调用方法的只有对象.

    2020年04月22日06:29:52

    编程语言学习思路

    1. I/O
    2. 数值
    3. 字符串
    4. 集合/容器
    5. 关键字/特殊机制
    6. 标准库
    7. 多线程
    8. 进阶

    2020年04月24日07:02:53

    中间层,一般是抽象层,例如dbus,先融合再分发,
    还有一种中间层,是应对复杂的接口的,即实现处理相同事情的各种类型;
    还有一种中间层是将一种数据结构解析为另一种数据结构,

    2020年05月10日12:25:54

    面向对象编程核心思想:

    • 面向接口编程
    • 功能逻辑分离
    • 生命周期管理
    • MVC架构
    • 通信
    • 分层
    • 权限

    随笔

    建立多层函数的目的:1.为了形式上统一;2.为了有效性检测并进行逻辑处理(逻辑层);3.转换函数名

    软件设计思想:分层思想

    使用boost好处:可以在低版本的C++中使用高版本C++的功能。

    学习使用boost官网资料

    整理工程中应用的boost库

    语言的灵魂是库

    通过重载()运算符获取类型。

    通过建立空结构体来表示类型。

    每个函数添加有效性判断。

    解析也是一种转换,将一种格式转换为另一种格式。解析常用于对不可读的信息转化为可读信息,转换常用于将一种格式适配成另一种格式。

    如何看懂一个变量/函数?
    全局搜索这个变量的初始化,赋值,被调用,销毁的地方。

    建立多层函数的目的:1。为了形式上统一;2.为了有效性检测并进行逻辑处理(逻辑层);3.转换函数名

    对于没有返回值的函数,要么是设置了出参,要么是设置了全局变量,要么就是print

    使用boost好处:可以在低版本的C++中使用高版本C++的功能。

    (void *) 可以作为接口传入任何指针。其实(void *) 就是保存了首地址而没有保存长度的指针,因此可以传递任何指针,但是想恢复数据就需要将(void *) 转换为正确的类型才行。

    成员变量同时也是该类的全局变量。

    判断有效性的目的有:
    1.提高兼容性,使任何输入都会得到处理,而不产生崩溃;
    2.有些模块在使用时才启动,如果启动的慢,则调用不了它,所以必须判断他可用时再调用,不然会崩溃。

    STD与STL的关系
    STL即标准模板库(Standard Template Library),它包括五大类组件:算法、容器、迭代器、函数对象、适配器。
    STL是C++标准库的一部分,但不是全部。C++标准库是std名字空间中的所有内容,就是那些不带.h的头文件,如、。如std::string,及IO流都不属于STL,但它们是STL兼容的,可以应用迭代器,算法等。虽然std::string和IO流也是模板类,但并不属于STL。
    STL的实现,如STLPort中包括了IO流,string类等,其实不能确切的称为STL实现,而是比STL更大的库实现。但是某些STL类没有在标准库中实现,如hash map,STLPort中实现了。C++标准库包含一个STL的实现,但该实现是标准STL的子集。
    C/C++标准库主要包含3部分: STL、IO流及本地化、C的函数库。
    标准库不是STL,STL是标准模板库,是标准库的一个子集。它是一个可复用的组件库,其中包含了很多实用的算法和数据结构。stl是一个泛型思维的集中体现。

  • 相关阅读:
    sharepoint tip (视图)
    how to use mstsclib
    Why I Love My Virtual PCs
    科普 | 什么是去中心化自治组织(DAO)
    毕业生的商业软件开发之路 C#基本语法C#代码模块逻辑框架
    文本编辑器中文字断行及排版算法研究
    [毕业生的商业软件开发之路]C#异常处理
    毕业生的商业软件开发之路关于企业培训
    开源C#2.0体温单程序
    论电子病历文本编辑器
  • 原文地址:https://www.cnblogs.com/chendeqiang/p/12920146.html
Copyright © 2020-2023  润新知