我最近被告知我应该在代码中使用抽象。我对这个问题相当不熟悉,在研究中我发现了很多关于抽象类的内容,但我更多地指的是“信息隐藏”部分,而不是代码本身中的函数。
例如,如果我有一个执行独特目的的类,为什么我要为该类创建一个抽象版本来实现?我无法确定何时使用抽象以及出于什么目的,如果没有方法体,基本上相同的类如何改变它的使用方式?主要是因为当其他人使用代码时,如果这是真的,它是否应该在更多私人项目中完成,这是一种良好的做法?
答案 0 :(得分:0)
抽象是编程中更普遍的概念,而不是将类声明为abstract
。
抽象与关注点分离有关,并且基本上涉及从更高级别或更多抽象代码中封装实现细节。
例如,我可能有一个用户对象,持久存储到数据库,并想检查用户是否将某个标志设置为true
,以便查看视图上的按钮。
我可以在我的视图代码中获取数据库连接,运行SQL查询,将结果反序列化为用户对象,并检查标志,但我没有将我的问题分开。我的视图代码知道很多关于我如何持久化数据,如何获取结果集并将其转换为用户,如何获得数据库连接,数据库结构等...
相反,我应该抽象远离这些细节,因此视图层可以从某物中获取用户并检查标志。 某些东西可以知道数据库的细节,甚至可以将其中一些细节委托给较低级别的组件。