![](https://cdn-ak-scissors.b.st-hatena.com/image/square/f9afe0c4e6dbec9b5e03ee32439e5119c0026463/height=288;version=1;width=512/https%3A%2F%2Fgihyo.jp%2Fassets%2Fimages%2FICON%2F2008%2F212_code.png)
エントリーの編集
![loading...](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/common/loading@2x.gif)
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
第4回 コードの分割―その6 Step4:クラスに分割する | gihyo.jp
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
![アプリのスクリーンショット](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/entry/app-screenshot.png)
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
第4回 コードの分割―その6 Step4:クラスに分割する | gihyo.jp
Step4:クラスに分割する それではいよいよクラスの分割です。 まず、ここでは一時変数のrowIndexに注目... Step4:クラスに分割する それではいよいよクラスの分割です。 まず、ここでは一時変数のrowIndexに注目します。先のリスト5 のbuildDocument メソッドを見ると、rowIndexは①で宣言されて、②③のループの中でインクリメントされながら使われています。変数が使用されている範囲はbuildDocumentメソッドの全体に渡っていて、その間XMLを生成するときに必要な現在行の状態を保持しています。このように、長い範囲で使用されるローカル変数があると、リファクタリングが行いにくくなるという問題があります。 たとえば、組織要素、ユーザ要素の追加を別メソッドにする場合、それぞれのメソッドでの行の増分をrowIndexに足したり、現在のrowIndexを渡したりする必要があります。つまり、メソッド呼び出し、戻しの際に「状態を引き継ぐ」必要が出てくるのです。 このような「状態を表す