for VisualWorks 7.8 / 7.7 / 7.6 with Jun793
「赤・緑・青(加法混色)」と「シアン・マゼンタ・イエロー(減法混色)」そして「色相・彩度・明度」を用いたアプリケーション(色のGUI)を抽象化してみましょう。リファクタリング(オブジェクト指向デザインとオブジェクト指向プログラミングの真髄)への導きになります。
|
どうぞ次のプログラムを実行してください。作成のための準備が整います。
| aCollection | (aCollection := OrderedCollection new) add: #url: -> 'http://www.cc.kyoto-su.ac.jp/~atsushi/Programs/VisualWorks/ColorAbstract/ColorAbstract.st'; add: #comment: -> 'Copyright 2008-2011 KSU (Kyoto Sangyo University). All Rights Reserved.'; add: #bundle: -> #KSU; add: #package: -> 'KSU-Template'; add: #nameSpace: -> #KSU; add: #category: -> 'KSU-Template'; add: #class: -> #{KSU.ColorAbstract}; add: #protocol: -> #'interface specs'; add: #selector: -> #windowSpec; add: #execute: -> []; yourself. JunSystem perform: ((aCollection collect: [:each | each key]) inject: String new into: [:selector :key | selector , key]) asSymbol withArguments: (aCollection collect: [:each | each value]) asArray
|
以下のオブジェクト指向デザイン(UMLのクラス図)に基づいて、改善のためのオブジェクト指向プログラミング(抽象と具象の階梯の上り下り)を行い、リファクタリングを施してみると…。
|
すべてこしらえると、約1,000行になり、大きく構造変化をしているにもかかわらず、いままでの機能がそのまま維持されます。回帰テストを施せば、以前と同様な結果(動作状況)が得られます。
|
約1,000行のプログラミング(このドックレット出力を見ながら)、おきばりやしとくれやす!
for VisualWorks 7.8 / 7.7 / 7.6 with Jun793