添付ファイルの追加

ログイン済のユーザのみが添付ファイルをアップロード出来ます。

This page (revision-3) was last changed on 18-5-2016 14:24 by ytp

This page was created on 18-5-2016 08:27 by ytp

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Difference between version and

At line 1 changed 2 lines
このページは書きかけです。
!!!小粒クラスからユーティリティクラスを上手に活用する
!!!小粒クラスから関数を上手に活用する
At line 4 changed one line
*ユーティリティクラスは禁止だが例外もある
*関数とユーティリティクラスは禁止だが例外もある
At line 8 changed 2 lines
!!氏名クラスから関数を使って保守性を高める
氏名クラスを例にして説明します。
!!氏名クラスから文字列編集関数を使って保守性を高める
またもや氏名クラスを例にして説明します。
At line 104 changed one line
ただしこのような関数は
!!関数を利用する上での注意点
ただし関数は、
At line 108 changed one line
結果になります。一つの指標としては、
結果になります。なぜなら、
*AとBの間にスペースを1つ入れて返す
という要件を満たす上記関数は、
*AとBが文字列でさえあればその属性の業務的特徴に関係なく使えてしまう
からです。そもそも業務要件としては「文字列」などという属性は出てこないので、「文字列を編集する」という仕様は極めてシステム的な機能です。「文字列」というのが「属性の型」であることを考えてもシステム的な抽象化の結果であると判ります。\\
この関数を小粒クラスからではなく、例えば画面アプリケーションや帳票アプリケーションから直接使ってしまうと上記に書いたようなスペースを2つに換えるという単純な仕様変更でさえ、あちこちのコードを修正する必要が出てしまいます。\\
これを避けるための一つの指標としては、
At line 117 added 12 lines
!!まとめ
#異なるクラスの異なる属性を共通的に扱う関数とユーティリティクラスは小粒クラスから利用する
#それらは経験のある設計者が設計する
!!コラム
関数やユーティリティクラスを禁止するというのはかなりショッキングな言葉だと思います。そもそもJavaやC#などのオブジェクト指向言語が手続き型である関数を仕様として持っている以上、それを排除しろというのはかなり困難です。\\
様々なコードを見ましたが、手続き型で実装できてしまうことがオブジェクト指向型の実装を阻害していることが多いのが現実です。これはJava EEの仕様についても感じます。\\
例えばJPAで良く使われるEntityクラスは「リンゴ1個クラス」であり、これを自動生成するツールはたくさんあるのですが、「リンゴ1山クラス」を自動生成するツールは見掛けません。そういうツールを過去自分で作ったこともあります。\\
リンゴ1山クラスが無いと、その中に実装すべき処理があちこちに実装されてしまうため保守性を下げます。リンゴ1山クラスが常に必要だと気付くエンジニアは相当上級の人なので、そのまま開発してしまうとかえって「オブジェクト指向は使いづらいね」という印象に繋がります。\\
最近に至っては、オブジェクト指向を理解することの難しさからか、オブジェクト指向そのものが役に立たないという論調さえ見るようになってしまいました。理解することを諦めてしまったのでしょうね。\\
しかしこのサイトを読んだ皆さんは、オブジェクト指向の正しい適用方法を理解し、出来るだけそれに沿った設計・実装をすることによってメリットを享受出来るようになって下さい。そしてそのことを他のエンジニアにも広めて下さることを切に願います。\\
Version Date Modified Size Author Changes ... Change note
3 18-5-2016 14:24 3.545 kB ytp to previous
2 18-5-2016 11:13 2.884 kB ytp to previous | to last
1 18-5-2016 08:27 2.467 kB ytp to last
« This page (revision-3) was last changed on 18-5-2016 14:24 by ytp