[戻る ]
Java読書会BOF「The Java Module System」を読む会 第8回¶
日時 | 2020年6月20日 10:00 - 17:00 |
場所 | Microsoft Teams Java読書会BOF |
出席者(敬称略) | 吉本、岩室、高橋(智)、高橋(徹) |
- 本日は、p.228 10.3.1から読書開始です。
10.3.1 Types that can be services¶
10.3.2 Using factories as services¶
10.3.3 Isolating consumers from global state¶
10.3.4 Organizing services, consumers, and providers into modules¶
10.3.5 Using services to break cyclic dependencies¶
10.3.6 Declaring services across different Java versions¶
- 宿題 ServiceLoaderとFactoryを自分でお試ししてみよう
10.4 Accessing services with the ServiceLoader API¶
10.4.1 Loading and accessing services¶
10.4.2 Idiosyncrasies of loading services¶
- p.242 下11行目 誤植 "Service-loader" → "Service loader"
11.1 Implied readability: Passing on dependencies¶
11.1.1 Exposing a module’s dependencies¶
- あるモジュール(monitor.observer.alfa)を使うのに、そのモジュールが依存している別なモジュール(monitor.observer)もrequires指定しなければならないのは面倒、という文脈。
11.1.2 The transitive modifier: Implying readability on a dependency¶
- requires transitive 指定が解。あるモジュール(monitor.observer.alfa)のモジュール宣言に requires transitive monitor.observer; を記述すれば、そのモジュールを使うのに、monitor.observerをrequiresしなくても暗黙的にrequiresされる。
11.1.3 When to use implied readability¶
11.1.4 When to rely on implied readability¶
- requires transitiveされているとrequiresしなくても使えてしまうが、意図に応じてrequiresを書くとよい。
11.1.5 Refactoring modules with implied readability¶
- aggregator module
- 他のモジュール群を require transitive する定義だけ持ちコードを含まないモジュール
11.1.6 Refactoring modules by merging them¶
- module にも @Deprecated アノテーションを付与できる
11.2 Optional dependencies¶
11.2.1 The conundrum of reliable configuration¶
11.2.2 The static modifier: Marking dependencies as optional¶
- requires staticは、コンパイル時に必須だが実行時には失くてもエラーにはならない依存。
11.2.3 Module resolution of optional dependencies¶
- 実行時にrequires staticで依存するモジュールを利用可能にするには--add-modulesで明示的に取り込む必要あり