有些疑问,golang支持面向对象的编程,为什么不使用面向对象进行编程呢?老师这里是出于什么样的思考呢?
来源:3-18 api之http middleware的实现与handler收尾(下)
_Zereker_
2018-08-01
比如,model模块。那些数据库操作,可以采用面向对象的方式进行操作
写回答
1回答
-
艾文西
2018-08-01
面向对象只是是一种思维
golang支持简单的面向对象,但是是不完整的OOP,比如多态和继承就实现的不好或者根本没实现
相反golang的编程思维提倡面向模块编程,也就是把单独功能的代码集合在一个package里,通过调用package来实现高内聚和低耦合。
那么现在回答你的问题,数据库操作为什么不做成面向对象。首先数据库的操作每一个都是原子操作,所有的CRUD实际上都是独立的没有必然耦合的,在这种情况下,面向对象从对象的创建,方法调用,到最后对象生命周期的管理,和可能要因为对象复用而采用一些设计模式等等制约条件来看,反而没有直接调用方法简单和容易维护,因此选择直接调用。
00
相似问题