我理解OO编程的工作原理,但在实际使用一个或两个以上的类时几乎没有实际经验。当谈到实际使用它时,我在与OO Design部分斗争。我已经得出以下案例,可以从OO中受益:
我有来自不同来源的一些数据集,一些来自文件,另一些来自互联网,通过API以及其他来自不同来源的数据。当涉及到它们包含的数据时,其中一些非常相似,其中一些实际上是不同的。我想要显示这些数据,因为几乎所有的数据都是基于我计划在地图上做这个的位置(使用python中的Folium创建基于leafletjs的地图),带有某种标记(稍微有点)弹出窗口中的信息)。在某些情况下,我还想创建一个包含数据概述的pdf并将其保存到磁盘。
我想出了以下(开始)一个类的想法(用python编写来表明这个想法):
class locationData(object):
# for all the location based data, will implement coordinates and a name
# for example
class fileData(locationData):
# for the data that is loaded from disk
class measurementData(fileData):
# measurements loaded from disk
class modelData(fileData):
# model results loaded from disk
class VehicleData(locationData):
# vehicle data loaded from a database
class terrainData(locationData):
# Some information about for example a mountain
class dataToPdf(object):
# for writing data to pdf's
class dataFactory(object):
# for creating the objects
class fileDataReader(object):
# for loading the data that is on disk
class vehicleDatabaseReader(object):
# to read the vehicle data from the DB
class terrainDataReader(object):
# reads terrain data
class Data2HTML(object):
# puts the data in Folium objects.
考虑到要输出的数据,我认为每个数据类都会呈现自己的数据(因为它知道它有什么信息),例如render()方法。渲染方法的输出(可能是dict)将在data2pdf或data2html中使用,尽管我还不确定如何执行此操作。
这是否是OO设计的良好开端?有人有建议或改进吗?
答案 0 :(得分:0)
前几天我描述了similar question的方法。我想你可以用它。我认为最好的方法是拥有一个可以检索和返回数据的对象,另一个可以根据需要显示它们的对象,也许是一个可能,可能是图表以及您想要的任何其他内容。
您怎么看?
由于