工厂方法(Factory Method)是一种创建型设计模式,它提供了对对象创建的代码的封装,通过定义对象创建的接口来实现。具体创建代码封装在实现对象创建接口的类中。实际使用中创建新的对象的操作也可以从缓存里取或者其他的方式。以下是工厂方法模式的一般结构和角色:产品接口(Product): 定义了工厂方法创建的对象的共同行为。这是工厂方法所创建对象的共同父类或接口。具体产品(ConcreteProduct): 实现了产品接口的具体类,是工厂方法所创建的对象。工厂接口(Creator): 声明了一个创建对象的工厂方法,该方法返回一个产品接口类型的对象。这可以是抽象类或接口。具体工厂(ConcreteCreator): 实现了工厂接口,负责实际创建产品对象的类。它含有与具体产品相关的逻辑。类图示例代码#include <iostream> // 1. 产品接口 class Car { public: virtual void drive() const = 0; }; // 2. 具体产品 class Sedan : public Car { public:

访问者设计模式是一种行为型设计模式,可以在不修改被访问元素类的情况下,增加对被访问元素的新操作。它通过将算法与操作对象分离,使得可以在不修改现有元素类的情况下增加新的操作。当然是基于现有元素的属性。访问者(Visitor):定义了可以访问和操作每个具体元素的接口。访问者模式通常会为每一种元素类型都定义一个对应的访问者接口方法。具体访问者(ConcreteVisitor):实现了访问者接口,提供了对具体元素的具体操作。每个具体访问者都实现了在访问元素时应该执行的操作。元素(Element):定义了一个接受访问者的接口,通常包含一个 accept 方法,该方法接收一个访问者作为参数。具体元素(ConcreteElement):实现了元素接口,定义了具体元素的结构和行为。对于每个具体元素,都会有一个 accept 方法,该方法将具体元素传递给访问者。考虑一种场景:现有一组图形,想计算每个图形的周长,然后加起来得到总周长。不使用访问者模式,在每个图形里面增加一个方法计算周长,然后加起来。过一段时间,有一个新需求,针对每个图形计算其面积,又要在每个类里增加一个方法计算面积再加起来。如果使用访问者

对于脑力工作者来说,学会脑休息是工作生活取得成功的重要保障。今天介绍的正念呼吸法就是放松大脑,给大脑放假的绝佳方法。原理问题人类大脑的重量约占自身体重的2%。大脑一天所需能量占身体总消耗量的20%。大脑消耗能量很惊人。美国学者提出预设模式网络(Default Mode Network, DMN),认为脑回路会在大脑未执行有意识的活动时也自动进行基本运作。DMN就像汽车挂空挡,一直处于“发动着引擎”的状态。DMN的能量消耗占大脑总能量消耗的60%~80%,即使不集中注意于任何事,只是放空的状态,只要DMN仍在过度运作,大脑就永远不会获得休息。所以让DMN正常运作,该休息时休息,就很重要。办法两个办法:一个是经颅磁刺激技术(Transcranial Magnetic Stimulation, TMS),这个技术使用一种机器,这种机器产生磁信号,直接对大脑进行治疗。另一个就是正念。正念与TMS具备同等效果。正念不加以任何评价或判断,主动关注当下的感受就是正念。它是以冥想为基础的大脑休息法。正念具有三个特征:排除宗教性,得到彻底贯彻的实用性排除修行的要素,使得谁都会觉得简单明了趋近脑科学研究,

1945年发表的论文设计,一直沿用到现在。想想真是恐怖,美丽国在科技方面领先全球几十年。想想看,那会儿中国在干嘛。现在使用的电脑、手机依然还是冯诺依曼的设计。一个字,🐮!冯诺依曼机器把计算机分为5个部件:运算器、控制器、存储器、输入设备、输出设备。运算器,顾名思义,就是做运算的部件,是整个系统中干活的那个人。控制器,是控制流程的部件,不同条件下的分支和跳转。if语句、while循环、函数调用都离不开控制器存储器,存储程序和数据的部件。输入设备,输入信息的设备,比如电脑的鼠标键盘,手机的屏幕。输出设备,输出信息的设备,比如电脑的显示器,手机的屏幕。

Linux加载ELF有很多细节。下面是宏观流程:首先要识别出二进制文件的格式为ELF,如果不是,则加载失败。解析ELF文件头部,头部信息包括入口地址,程序头部,段头信息。Linux内核分配内存给ELF文件,根据程序头部定义的代码段、数据段、栈或者其他段来分配内存加载代码段、数据段的内容动态链接,符号解析、地址解析。加载共享库。设置执行内容,寄存器、程序计数器、栈指针等信息跳转到程序入口程序从入口点开始执行,linux把控制权交给程序