人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

現代的なプログラミングで、価格表のようなものはどのように表現するものなのでしょうか。
たとえば、宅配便の配送料(出発と到着の都道府県により価格が決まる価格表)などを実装する場合、かつては二次元配列で価格表を実現していましたが、モダンな言語ではどのように実装するのがベストでしょうか。
なお、DB等の利用は行いません。

実装言語はC#の予定ですが、java,Ruby等言語は問いません。


●質問者: hakob
●カテゴリ:コンピュータ
✍キーワード:C# dB Java Ruby プログラミング
○ 状態 :終了
└ 回答数 : 7/7件

▽最新の回答へ

1 ● azusa1967
●18ポイント

ハッシュテーブル

◎質問者からの返答

配列をハッシュテーブルにするのが現代的な手法でしょうか。

また、二次元表のような物をハッシュテーブルにすると言うことは、ハッシュテーブルを要素として持つハッシュテーブルを定義する事になると思いますが?


2 ● horonict
●17ポイント

プログラム自体より価格表の変更頻度が高い場合は、価格表を外部のテキストファイル(CSV形式など)に持たせ、プログラム起動時に配列に読み込むようにします。

価格表のようなものはExcelで作成した方がチェックがしやすいためです。

◎質問者からの返答

外部CSV自体は読み込んだあと、C#であればDataTableクラスあたりかな…?で、読み込んで処理をするということですね。

妥当な手段ですが、CSVを直接読まれたりしたくないような場合はどうするのが良いでしょうか。暗号化ZIPにするとかかな。


3 ● supermomonga
●17ポイント

オブジェクト指向プログラミング言語(OOPL)での実装を前提に考えますと、クラスを定義してやるのが良いかと思います。

クラスとは「型」であり「振る舞い」ですので、「価格表」という振る舞いをする型、つまりクラスを定義します。

◎質問者からの返答

価格表クラスを定義するとして、どういうクラスを作るのでしょうか。

『価格表オブジェクト.get価格( 出発都道府県 , 到着都道府県)』

といったようなメソッドを定義するようなイメージでしょうか。

実装の隠蔽、引数が文字列でも内部で変換が可能、間違った文字列「例:土佐県」などを引数に与えた場合のエラーチェックが可能、などがメリットでしょうか


4 ● コスモピアニスト
●17ポイント

価格表のメンテナンスを考慮すると、エクセルなどの外部ファイルに持たせておくべきだと思います。現代的とかそういう以前に、ビジネス系ソフト設計の常識です。

◎質問者からの返答

大元のデータはExcelにて管理されています。また、Excelに管理されたデータをもとにマクロやワークシート関数を使ってソースコードへ変換するのは一瞬ですので。。


なお、価格表はユーザに閲覧不可という前提でお願いします。


5 ● horonict
●17ポイント

CSVを直接読まれたりしたくないような場合はどうするのが良いでしょうか

そのようなビジネスアプリの場合、プログラム本体や価格表はサーバ側に配置するのが普通です。サーバには論理的/物理的アタック防止措置が施されるはずですから、無用な暗号化はしないのが普通です(バグの温床になるため)。


どうしても暗号化が必要なほどの機密情報でしたら、まずRDBMSを導入し、DBの暗号化機能を利用するでしょう。

◎質問者からの返答

外部ネットワークと切り離された状態になる可能性のあるアプリなのでって私書いてありま・・・せんね。書き忘れてました。

ノートPCを持ち運び、営業先等でネットワークにつながってなくても使用可能という話なので、その前提でお願いします。すみません。


1-5件表示/7件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ