2

我已经成功编写了一个 Powershell 脚本,它:

  • 查询AD获取计算机列表
  • 通过WMI查询每台计算机,获取软硬件信息
  • 将收集到的数据插入 MySQL 数据库。

该脚本运行良好,但我不喜欢它的实现方式。它是程序性的,并且有很多代码重复,每次我需要更改某些东西时都会造成混乱。

现在,我想问你的是:使用 OOP 在 python 中实现它的最简洁的方法是什么?我想到了类似的东西(伪代码):

Class ADquery
    function get_computers( UO ): return a list of computers in the specified UO

Class Computer
    constructor( computername )
    function query(): connect to the computer and pull the info through WMI
    function print(): print the collected info to the console (debug)
    property RAM
    property CPU
    ...

问题:

  1. 为了将收集到的数据保存到数据库中,我是否必须创建另一个对象(例如数据库)并将计算机对象传递给他或将成员函数添加到计算机类(例如 save_db() )?

  2. 如果我选择第二个选项,当我处理多个对象时,这不会导致大量的 MySQL 连接吗?

非常感谢,对不起我的英语不好

4

2 回答 2

2

这种架构在我看来是合理的。

  1. 你可以做任何一个,我不确定它是否真的会对像这样的小应用程序产生巨大的影响。

  2. 潜在的。根据它的实现方式,您可以获得很多连接。如果您正在执行合理数量的插入,我会将它们粘贴在一个列表中并一次全部插入,如果您的代码可以这样做的话。

于 2012-04-18T07:24:27.947 回答
2

You could also grab an Object Oriented Design book from the internet or your local bookstore, e.g. Rumbaugh et al.. I would also recommend reading up on Design Patterns, e.g. the book by Gamma et. al.. I'm currently doing that, and it is really helpful to look at standard patterns of how to solve a particular problem to shape your thought process about object oriented programming.

ps Your English isn't bad at all (note that I'm also not a native speaker ;)).

于 2012-04-18T07:46:57.233 回答