面向对象,听到这个词我居然出来的是下面几张图,大家先体会一下。
这就是玩面向对象的人生活真实写照。
程序狗发完了日常的牢骚,开始认真想下面向对象的思维与产品可能有的关系。
首先贴关于“什么是面向对象”这个问题我的回答。
面向对象是为程序员将现实世界的事物进行抽象映射到程序世界的思维方式,Example:对某种具有相同性质的物体的统称为类;这种物体的任何一个个体是类的实例,即对象;对象具有很多属性,并且可以有方法。
世界上所有的车归属一个共同的类“车”,每一辆车都是“车”这个类的实例,即对象。车有轮子、车窗、方向盘等,这是对象的属性。而车可以完成前进、后退、转弯灯动作,也就是这个实例的方法。
所有车之间有共性也有特性,比如都有轮子,方向盘等是共性,但是轮子数量、车漆颜色是特性,这些特性个性共同组成每辆车,即每个对象的属性。
第一
所谓面向对象编程的精华就是用类、对象、属性、方法等概念系统的解构现实世界,参考上面对车的描写,不管谁说出关于车的任意信息,都可以在类、对象、属性、方法等不同层面角度上找到落脚点。
对应产品领域即多了一套系统分析事物特性、行业发展的框架,产品的思维基本都是发散跳跃、天马行空的,所以不太容易把控。但是面向对象为产品在发散和系统思维之间提供了平衡的可能。
第二
可以黑箱操作,提升团队效率。合作开发的时候对象内部不需要对外开放,队友可以根据你暴露的接口完成各种功能的调用,而不需要关系如何实现。
对应产品领域要求与黑箱操作不同,一般pm都是从某个小功能模块开始自己的产品生涯,所以就要求你对你负责的功能全方位了解。包括你的功能是否在主要流程上,一般用户会通过哪些途径来到你的功能页面,会流向哪个页面。这些都需要你和其他pm加强沟通,甚至可以因为流程设计需要会和其他pm做出联调的改动。
面向对象的思维就像世界上所有宗教思想一样漂亮,系统而简单。最主要的都是为你解构这个世界提供了一套完整的思想工具:佛教你世界上有善恶轮回劝你不计较现在而修来生;道教崇尚因果有报让你清心寡欲破业障;儒学相信万物均应合乎礼所以教人礼义廉耻规矩纲常。他们都是对所有的事情提出了完整和简洁的描述,但是背后链接的要么是鸿蒙世界天地初开的混沌,要么是超脱众生之外的神话偶像啥的。而如果把面向对象当做一个宗教思想来看,它应该是最完美的思维,不存在善恶,也不鼓励你做什么不做什么,只是教你系统简化分析问题。
这个文章写得太牵强,简直实力跑题,不过何以宽放心,我会继续思考这个问题在前端和产品两界来回穿梭,如果哪天觉得能描述清楚了,我会来更新。