![]() |
1
12
试着保持事物松散地耦合,并充分地使用接口来帮助。 我将从 关注点分离 .主要建筑层有:
域类可以完成这项工作,但不了解UI。持久性层了解域类,足以根据需要保存/加载。系统接口层将外部系统抽象出来,这样可以在测试时在后面插入模拟器。用户界面最好使用MVC,以获得最大的灵活性。 如果不把重点放在上面,人们通常不会把Drupal看作优秀建筑设计的典范。它已经发展得相当有机,而且设计也发生了许多变化,这一点可以从系统升级时经常出现的插件损坏来证明。 我也会重复Micsim所说的,关于仔细设计插件接口和编写多个不同的插件来练习它。这是解决应用程序和插件交互问题的唯一方法。 |
![]() |
2
8
由于您将在应用程序中提供一些基本功能,请确保您编写的部分应该是可扩展/可替换的,并且已经作为插件由您自己编写。然后您最好了解一下您的API应该是什么样子。 为了证明API是好的,您应该编写第二个和第三个插件,因为这样您会发现在编写第一个插件时做了很多假设。通常情况下,在完成第二步和第三步之后,事情会有一点好转。 现在,您应该再编写一个插件,因为您编写的最后一个插件类似于类型、输入数据和表示中的第一个插件(可能还有另一个weather webservice)。选择完全不同的东西,使用完全不同的数据,您将看到您的API仍然是定制的。(否则你做得很好!) |
![]() |
3
2
好吧,也许首先要做的是坐下来,弄清楚插件可能需要什么来实现它的目的。 你想在设计中考虑两个主要方面。
可能还有,因为这听起来像是一个学习项目。
我还建议在设计API时开发一些基本插件。必须实际使用您设计的内容的经验将允许您了解给定方法可能会使事情变得比需要的更困难。 |
![]() |
4
1
|
![]() |
5
1
研究侦听器订户模式。迟早,你的应用程序会非常复杂,你需要实现回调。当达到这个限制时,使用侦听器订阅服务器(wxpython中有一个实现)。 例如,几个模块将希望监视来自多个提要的新数据。连接在一起的模块可能希望根据新数据自我更新。 |