[Java]109 自製アプリのリファクタリング案

[M1 Mac, Big Sur 11.6.5, VSCode 1.67.1]

自製カラーアプリのリファクタリング案(改良案)を作成しました。

これまではTextFieldに保持されたカラーコードで選択色を管理していましたが、専用のクラスSelectColorを新設し変数(基本フォーマットは0x+hex)で管理することにしました。

これにより色フォーマットの変更に対応するコードが複雑にならずに済みそうです。

@startuml

package base {
    +class ColorSampleJP {
        +{static} gui : JFrame
        +{static} tabbedpane : JTabbedPaneEx
        +{static} tab1 : JPanel
        +{static} tab2 : JPanel
        +{static} tab3 : JPanel
        +{static} tab4 : JPanel
        +{static} tab5 : JPanel
        +{static} tab6 : JPanel
        +{static} layout : BorderLayout
        +{static} default_font : Font
        +{static} home : String
        -locale_lang : ResourceBundle

        -ColorSampleJP() : void
        +{static} main(String[] args) : void
        +{static} setLAF() : void
        +LAF_OS() : String[][]
        +{static} size(String key) : int
        +{static} makeDir() : void

    }
    
    '関連クラス(mainクラスで使用)
    +class PanelMake {
    }
    +class RegistTab {
    }
    +class SelectColor #00FFFF{
    }
    +class TabMake {
    }
}

package btnAction {
    +class ShowButtonAction #DDA0DD{
    }
    +class AdjustButtonAction {
    }
    +class AlphaButtonAction {
    }
    +class RadioButton1Action #DDA0DD{
    }
    +class RadioButton2Action #DDA0DD{
    }
    +class RadioButton3Action #DDA0DD{
    }
    +class RadioButton4Action #DDA0DD{
    }
    +class RegistButtonAction #DDA0DD{
    }
    +class TrushButtonAction {
    }
    +class FormatConverter {
    }

}

note left of SelectColor
    選択あるいは指定した色を管理する
end note

ColorSampleJP -- PanelMake
ColorSampleJP -left- RegistTab
ColorSampleJP -left- TabMake
TabMake -- SelectColor
SelectColor -- ShowButtonAction
SelectColor -- RadioButton1Action
SelectColor -- RadioButton2Action
SelectColor -- RadioButton3Action
SelectColor -- RadioButton4Action
SelectColor -- RegistButtonAction

left to right direction
PanelMake -- ShowButtonAction
PanelMake -- AdjustButtonAction
PanelMake -- AlphaButtonAction
PanelMake -- RadioButton1Action
PanelMake -- RadioButton2Action
PanelMake -- RadioButton3Action
PanelMake -- RadioButton4Action
RegistTab -- RegistButtonAction
RegistTab -- TrushButtonAction
AdjustButtonAction -- FormatConverter

@enduml