0

しばらくしてGTK+を使って最初のCプログラムを作り始めています。私はある程度Cを学び、PyGTKを使って仕事をしたことがあるので、両方について十分に理解しています。しかし、私はCでGUIプログラムを作成したことはありません。それは機能しましたが、プログラムロジックがすべてGUIのものと混ざっていたため、私の最後のGUIプログラムは少し混乱していました。GUIとプログラムロジックを分離して作成するのが最善であると読んだので、GUIライブラリを切り替えても、かなり苦痛はありません。

これは正しいですか?ビジュアルリストにアイテムを追加するとします。アイテムを論理リストに追加し、そのリストを調べてGUIを更新する関数でそれを実行する関数はありますか?

例えば、

void new_item_button_handler()
{
  add_item_to_array() /* Code dealing with program logic*/
  /*
   * Code here to look at array and update visual list using GUI commands
   */
}

これを行うための一般的なプロセスは何ですか?

アドバイスをいただければ幸いです。

編集:

MVCに関するアドバイスをありがとう。私が与えた例の文脈でそれを説明できますか?MVCに関する情報はたくさんありますが、ここでのコード例にMVCがどのように適用されるかを理解するのに苦労しています。

4

2 に答える 2

3

Model-View-Controllerデザイン パターンを探していると思います。

于 2010-08-31T17:02:58.350 に答える
3

従来、これは MVC パターンで解決されていました。ただし、規律を守らないと、ビジネス ロジックがビュー レイヤーに忍び込んでいることがわかります。

すべてがモデル、ビュー、およびコントローラー パッケージにきちんと収まるように、できる限りパッケージ構造を設計してください。パッケージ間でデータを共有するためのインターフェースを適切に定義していることを確認してください。個々のパッケージがテスト可能であり、他の 2 つに依存することなくほとんど使用できるように、パッケージを設計するためにあらゆる努力を払ってください。

また、IOC パターンを確認することをお勧めします。これは、すべてのパッケージを一緒に接続するときに役立ちます。また、テスト中にいくつかのスタブクラスをモックアップして、1 つのパッケージを他の 2 つとは独立してテストする必要がある場合にも役立ちます。IOC はアプリケーションの「配線」であり、オブジェクトを組み合わせて一致させることができます。

于 2010-08-31T17:33:36.220 に答える