【问题标题】:OO Design of data to map面向对象的数据映射设计
【发布时间】:2018-02-04 03:48:22
【问题描述】:

我了解 OO 编程的工作原理,但在实际使用一两个以上的课程方面几乎没有实践经验。当谈到实际使用它时,我在 OO 设计部分遇到了困难。我遇到了以下可以从 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 设计来说是一个好的开始吗?有人有什么建议或改进吗?

【问题讨论】:

    标签: python oop architecture


    【解决方案1】:

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

    你怎么看?

    谢谢

    【讨论】:

      猜你喜欢
      • 2014-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      • 2011-05-02
      相关资源
      最近更新 更多