OO设计要映射的数据

时间:2017-08-26 06:13:15

标签: python oop architecture

我理解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设计的良好开端?有人有建议或改进吗?

1 个答案:

答案 0 :(得分:0)

前几天我描述了similar question的方法。我想你可以用它。我认为最好的方法是拥有一个可以检索和返回数据的对象,另一个可以根据需要显示它们的对象,也许是一个可能,可能是图表以及您想要的任何其他内容。

您怎么看?

由于