【问题标题】:Python application architecturePython 应用架构
【发布时间】:2018-09-14 02:53:31
【问题描述】:

我正在尝试创建任务管理系统。 (某人可以创建任务并设置截止日期并获取通知的应用程序)。首先,我将创建控制台应用程序,然后使用 django 创建 Web。

我已经创建了一个数据库。(sqlite)

我不知道我的实体将如何交流。

第一种方法:

class User():
    def __init__(self):
    self.UserID
    self.UserName
    self.PassHash
    # salt, Full name and etc.


class Task():
    def __init__(self):
    self.TaskID
    self.UserID 
    self.Name
    #smth subtasks, date and etc.


 class UserService():
    def __init__(UserID, TaskID):
        User = db.GetById(UserID)
        TasksList = db.GetUserTasks(UserID)

    def addTask():
        ..

    def removeTask():
        ..

    def ChangePassword():
        ..

    def ChangeUserName():
        .. 

最后一个类将包含任务和用户类之间的所有业务逻辑和通信。第一个 - 没有任何方法的纯类。

另一种方法:

class User():
    def __init__(self):
    self.UserID # 
    self.UserName
    self.PassHash # 3 fields will be set up by db. The last one - on #runtime
    self.TasksList = None

    def ChangePassword():
        ..

    def GetTasks():
        TaskList = db.GetUserTasks(UserID)

class Task()
    def __init__(self):
    self.TaskID
    self.UserID 
    self.Name
    self.SubTask 
    #smth else

    def AddSubTask():
          .. 

提前致谢

【问题讨论】:

    标签: python oop architecture


    【解决方案1】:

    类应该定义您可以拥有一个或多个实例的对象。例如用户或任务。 我认为对象编程中的类不应该包含原始功能,因为您只是使用函数...

    考虑到这一点,我会采用第一种方法

    类应该是 classes 而函数应该是 functions - 我

    【讨论】:

      【解决方案2】:

      我会选择第一个选项,因为它更易读,结构更清晰。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-04-21
        • 2015-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-23
        • 1970-01-01
        相关资源
        最近更新 更多