3

POS システムにモジュール性を実装して、サードパーティが何らかのモジュール/プラグイン/アドオンを実行できるようにしようとしています。SPI と API の実装を開始しました。私の質問は、データベース上のデータへのアクセスはこの方法で行う必要があるか、それともサービスを提供する必要があるかということです。

この時点で、私がこれについてほとんど経験していないことに気付いたかもしれません。

編集:もう少し情報。私のシステムには、システムの任意の部分にアクセスするための資格情報を理論的にチェックするユーザーのシステムがあり、mysql データベースは Java で書かれています。私のモジュールは、DB 内のいくつかのテーブルへのアクセス、メイン メニューへのアクセスを安全に行う必要があります。他に何が言えるかわかりませんが、私の質問は、API がどのように必要であるかを抽象化したものです。

前もって感謝します

PS私の英語が下手ならごめんなさい

オクタビオ・ルイス

4

1 に答える 1

2

一般的に、ソフトウェアシステムは(通常)「レイヤー」(ユーザーインターフェイス(UI)、ビジネスロジック(BL)、データアクセスレイヤー(DAL)など)に分割されます。これらのレイヤーは、統合するための自然な場所も提供します。それで...

データベース上のデータへのアクセスはこの方法で行う必要がありますか、それともサービスを提供する必要がありますか?

あなたが言ったことから、他のシステムはサービスまたはAPIを介して統合する必要があると思います。データベースに直接アクセスできるということは、実行したいインタラクションに適用する必要のあるビジネスロジックを回避することを意味します。あなたの特定のケースでは、それはおそらく彼らがあなたのセキュリティ対策を回避することを意味するでしょう。

モジュール性

これには2つの部分があります。

  • モジュラーシステムを支援するアーキテクチャスタイルとデザインパターン(特にメンテナンスと拡張性に関して)。これらはすべてテクノロジーに依存しません(使用しているテクノロジーは関係ありません)。
  • 実装およびテクノロジー固有のフレームワークと手法。

デザインパターン

ウィキペディアはパターンを紹介するのに最適な場所であり、StackOverflowにはパターンの周りにもたくさんの素晴らしいコンテンツがあります。

私は、 SOLIDとして知られているものを理解することから始めますが、それはすべて有用ですが、最も価値のあるS、O、I、およびDの領域が見つかると思います。

依存性逆転の原則(「D」)は、モジュール性に関する限り、特にあなたに関係があります。インターフェイスを介して「契約」を作成することにより、他の関係者が構築できるものを作成します。たとえば、「デフォルト」の実装を自分たちが作成したものと交換できます。

テクノロジー固有

私はJavaについて具体的に話すことはできませんが(簡単に見つけることができるはずですが)、.Netには、この種の目的のために特別に構築されたフレームワークがいくつかあります。たとえば、Managed Extensibility Framework(MEF)です。

重要なのは、ほとんどのテクノロジースタックは、モジュラーシステムを構築するためのさまざまなフレームワーク、ツール、およびアプローチを提供するということです。

于 2010-10-10T21:01:28.677 に答える