叙说程序猿眼中的人文世界,分享的主题如下:
程序那点事:面向对象中类的种类
程序猿学管理:在类的种类中学习识人用人
有趣的HOOKs:换位思考与共情能力
程序那点事:面向对象中类的种类
面向对象技术中最为核心的概念就是类(class)和对象(object),对象可以理解成是现实世界中一个实际存在的事物,当然可以是有形的(比如一辆车),也可以是无形的(比如一项计划)。在面向对象方法论中对于类的定义是这么给出来的:类是具有相似结构、行为和关系的一组对象的描述符。
类和对象的关系就如同一个模具和用这个模具铸造出来的铸件之间的关系,也如同哺乳动物与虎、狼、熊、鹿、猴、狗等等之间的关系,所以类给出了该类的全部对象的抽象定义,而对象则是符合这种定义的一个实体。所以,一个对象(object)也可以称为类(class)的一个实例(instance),而把类作为对象的模板(template)。
由于面向对象技术要描述客观世界的应用系统,所以类其实会变得十分的复杂,为此在UML中将类(class)分为了3中主要的版型(种类),即实体类(entity class)、边界类(boundary class)和控制类(control class),这样子便于面向对象分析OOA和面向对象设计OOD来确定类。
为了大家通俗地来理解,实体类(entity class)往往对应的都是现实世界中存在的事物;边界类(boundary class)往往对应的是与联结联系相关的,最主要的就是系统内部与外界参与人之间的交界联系,比如我们的GUI用户界面、通信协议等;控制类(control class)是什么呢?可以理解成其本身并不干活儿的,而是负责管理其他类工作的。在边界类和实体类之间存在的控制类,可以使得“内部工作”更加“高效有序”,比如大家知道的餐馆吃饭,边界类类似于服务员收点菜单,实体类相当于后厨的厨师们做的每一道菜,而控制类则是后厨负责接单派单的。
程序猿学管理:在类的种类中学习识人用人
我们应该注意到面向对象类的三种版型都是具有较为明显的特点的,其与我们一个组织、机构和企业等内部的岗位存在着较为明显的对应关系。
实体类人才----干活的
一个企业的主营业