所谓"抽象"与"具体"

看了一篇电影评析,想谈一下”抽象”

马克思指出:抽象与具体的辩证法应是”具体-抽象-具体”的方法,是从具体上升到抽象与从抽象上升到具体的内在统一。

在高中数学课上,我也在数列章节中熟练的运用了假设,验证的方法,在导数中用抽象来求瞬时速度。

然而,当在生活实践中时,抽象却感觉是如此的难。

突然觉得,抽象和具体是一种极高的个人能力,它影响你的幸福感,你的人生高度,工作前景,生活品质等。当我们始终着眼于当前的琐碎事情时,其实已经故步自封,坐井观天了。因为你只是完成了这件琐事,没有去升华它。

  • 比如我要开发一个小系统,如果仅仅是为了完成领导布置的所谓功能,其实不是什么难事,难就难在你从领导的角度思考这个系统为什么要有这个功能;用户使用会有什么反馈;与这个系统对接的是哪些系统;对接遇到哪些问题;这个系统在行业内有什么口碑;目前各大公司开发进度如何。
    一旦你用这种思想去考虑了,那么才算真正的了解你做的东西。我想这也是为什么好的销售员的待遇那么高的原因吧,因为他们会站在高处去俯视产品,这种俯视,即为抽象。

c++中有一种抽象数据类型(ADT, Abstract data type),它就是通过类来表示更通用的类型。

举个例子:
写一个具体类:

typedef unsigned long Item;
class Stack
{
private:
    enum {MAX=10;};
    Item item[MAX];
    int top;
public:
    Stack();
    bool isEmpty() const;
    bool isFull() cosnt;
    bool push(const Item& item);
    bool pop(Item& item);
};
  • 这是一个栈的实现,c++用栈管理自动变量的,从业务上讲,栈实现的功能如下:
    (1)创建空栈
    (2)添加数据到栈,即压入栈
    (3)栈顶删除数据,即弹出栈
    (4)查看是否填满/为空
    分析这种业务需求比单纯的关注技术实现要有意义的多。

当然,实际上栈同时又是一种容器,继续抽象分析上层业务,其实list,vector等都属于一种容器,只是功能稍有差别而已。

所以关系就是:容器->栈/列表/map->各自类实现

这种既有的概念仅仅是举个示例而已。

总结:

  • 1.一个人应该抽象出上层业务逻辑,而不应该仅仅抱着技术细节不放,不然会让思维受到禁锢,无法上升一个层面,容易坐井观天。
  • 2.其实知识最初是没有边界的,由于社会的具体分工才会有专业出现,如果你不能做到将学到的东西融会贯通,那么就属于片面的,断层的,缺少骨骼的。
  • 3.一个人的格局决定了你的抽象能力,科比能带湖人队多次问鼎,退役后在商界当然也能如此。

猜你喜欢

转载自blog.csdn.net/zhuix7788/article/details/78238089