web-dev-qa-db-ja.com

ビジネスオブジェクトとは何ですか?ビジネスロジックとは何ですか?

読んでいるとき、私は彼らがBusiness Objectsと呼んでいるものへの参照を見続けます。ウィキペディアなどを調べましたが、Business Objectが何なのかわかりません。

ソフトウェアアーキテクチャなどについて知らない人にとって、簡単な説明はありますか?

また、Business Logicとは何ですか?

39

これは簡単

システムが相互作用することが期待される人間の世界のオブジェクトを表すシステム内のすべてのエンティティは、ビジネスオブジェクトです。

ビジネスオブジェクトの操作に関するシステムの人間世界のロジックは、ビジネスロジックです。

これは、オブジェクトとロジックが実装の詳細の一部であることとは対照的です。

たとえば、多層取引システムでは、注文/取引はビジネスオブジェクトになりますが、実装の詳細はハートビートになります。

ストリーミング用に注文/取引オブジェクトをエンコードするロジックは実装の詳細ですが、取引が到着すると注文状態を「完了」に変更するロジックはビジネスロジックです。

23
bobah

まあ、ビジネスオブジェクトは通常、エンティティを表すクラスと考えられています。本か店。このようなクラスには、価格、色、幅、ISBN番号などの特定のプロパティがあります。Javaまたは.NETでは、いわゆるセッターとゲッター、つまりこれらのプロパティを設定または取得するメソッドで構成されます。

一方、ビジネスロジックは、そのプロパティで動作するプログラムの一部です。つまり、この本はどのように販売されていますか。ビジネスロジックレイヤーは、データベースにアクセスするためにビジネスオブジェクトを使用します。

20
Ta Sas

むさぼり食って、私も開発を始めたとき、この用語に問題がありました。

基本的に、「ビジネス」という言葉が使われている唯一の理由は、商用ソフトウェアのコンテキスト内で開発された用語だからです。したがって、この意味では、ソフトウェアは、芸術的、美的、または創造的な目的とは対照的に、ビジネス目的で構築されていると想定されます。

したがって、ビジネスオブジェクトは、実際の「ビジネス」オブジェクトの単純なコード表現です。したがって、製品クラスまたは従業員クラスがあるとします。

ビジネスロジックは、ソフトウェアが設計された「ビジネス」に固有のアプリケーション内のロジックです。つまり、税の計算や、製品と顧客との関係などです。

ビジネスオブジェクトまたはビジネスロジックの概念は、ビデオゲーム開発や芸術的開発には適用されないことに注意してください。

また、ORMSや単体テストライブラリなど、一部のフレームワークやライブラリには適用されません。これらは、「ビジネス」に固有ではない再利用可能なコンポーネントであるためです。

15
andy

従来の3層プログラミングでは、3つの論理層または層があります。あなたはユーザーインターフェースであるプレゼンテーション層を持っています、最下層はデータベース層です。中間層はビジネスオブジェクト層になります。上記で指摘したように、ビジネスオブジェクトは、サイトがまったくビジネスに関するものではない可能性があるという点で抽象化する必要があります。これは、プレゼンテーション層に変更を加えたり、別のデータソースに切り替えたりするのを容易にする抽象化の層です。

ユーザーインターフェイスレベルの背後にコードがないか、非常に少ない場合。これにより、設計者はプログラマーとの共同作業が容易になります。設計者は、プログラマーがサイトを機能させるコードを大幅に書き直すことなく、サイトの外観を変更できます。ビジネスオブジェクトレイヤーを使用して、サイトの重いリストを作成します。データベースレイヤーがXMLかリレーショナルデータベースかをビジネスオブジェクトが知らなくても、データベースレイヤーを呼び出します。そして、ビジネスオブジェクトレイヤーは、UIレイヤーへの応答を更新します。通常、使用される例は銀行取引です。ユーザーインターフェイスで、クライアントは彼の普通預金口座から当座預金口座に転送したい金額を入力します。

ビジネスオブジェクトレイヤーには、銀行のビジネスルールが含まれます。つまり、ユーザーの普通預金口座の残高を確認し、送金する金額が口座の残高を超えていないことを確認します。ビジネスレイヤーには、普通預金口座と当座預金口座の両方の新しい残高を実際に計算するクラスが含まれ、データベースレイヤーにデータベースの更新を警告します。

3
Ric_30309

これはFun Logicの反対です。

2
irreputable

ビジネスオブジェクト:

class User {
    long id;
    String fullNames;
    int age;
}

class Book {
    long id;
    String bookTitle;
}

class Sales {
    long id;
    long userID;
    long bookID;
}

ビジネスの論理:

class BookSalesController {
    private User user = new User();
    private Book book = new Book();
    private Sales sale = null;

    public Sale sale(long saleID) {
        String query = "SELECT * FROM Sales s WHERE s.id = :saleID";
        ....
        .... execute the query

        // Assuming we have our Result Set here by now

        if (rs.next()) {
            sale = new Sales(rs.getString("User Names"));
            sale.setUserID(rs.getLong(userID));
            sale.setBookID(rs.getLong(bookID));
        }

        return sale;
    }
}
1
Program-Me-Rev

Business ObjectsはSAPが買収した会社であるとわかるので、ビジネスオブジェクトの定義を検索エンジンで取得するのは困難です。しかし、それはほとんどの人が求めるものではありません。

ビジネスオブジェクトは、ビジネスシナリオをカプセル化したビジネスロジックモデルです。

例:調達ドメイン:実行する必要があるアクティビティの完全なリストがあります。支出分析から製品の情報の要求、交渉された期間の契約の生成まで。したがって、この特定のシナリオでは、RFI(情報の要求)のようなドキュメントは、RFIビジネスオブジェクトのインスタンスと見なすことができます(検証などのプロセスに関連するすべてのロジックが含まれます)。

0
May13ank

SAPシリーズビジネスオブジェクトは、Oracleのコアデザインパターン内のビジネスオブジェクトとは異なり、アプリケーションサービスレイヤーと相互作用します...はい、ビジネスオブジェクトは複合エンティティで機能しますが、ビジネスロジックがあり、ビジネス状態を運ぶことができ、いくつかの簡単ですメソッドを調整し、動的な状態を交換できるビジネス情報キャリアであり、アプリケーション層またはドメイン間を横断しますが、異なるコンテキストでは、指定された名前が異なります。たとえば、Webサービスリクエストはxml形式のビジネスオブジェクトと言えます...データエンティティと同じではありません

0
user3016087