Head Firstデザインパターン
頭とからだで覚えるデザインパターンの基本
(オライリージャパン)
Eric Freeman (著), Elisabeth Freeman (著)
Kathy Sierra (著) Bert Bates (著)
佐藤 直生 (監訳), 木下 哲也 (翻訳)
有限会社 福龍興業 (翻訳)
開発環境
- OS X Yosemite - Apple (OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Java (プログラミング言語)
- javac (コンパイラ)
- java (application launcher)
Head Firstデザインパターン ―頭とからだで覚えるデザインパターンの基本 (Eric Freeman 著、Elisabeth Freeman 著、Kathy Sierra 著、Bert Bates 著、佐藤 直生 監訳、木下 哲也 翻訳、有限会社 福龍興業 翻訳、オライリージャパン)の2章(Observerパターン: オブジェクトを事情通に)、エクササイズ, コードマグネット(p.69)を解いてみる。
その他参考書籍
エクササイズ, コードマグネット(p.69)
コード(BBEdit, Emacs)
Test.java
public class Test { public static void main(String[] args) { WeatherData weatherData = new WeatherData(); ForecastDisplay forecastDisplay = new ForecastDisplay(weatherData); weatherData.setMeasurements(27, 65, 30.4f); weatherData.setMeasurements(28, 70, 29.2f); weatherData.setMeasurements(26, 90, 29.2f); } }
ForecastDisplay.java
import java.util.Observable; import java.util.Observer; public class ForecastDisplay implements Observer, DisplayElement { private float currentPressure = 29.92f; private float lastPressure; public ForecastDisplay(Observable observable) { observable.addObserver(this); } public void update(Observable observable, Object arg) { if (observable instanceof WeatherData) { WeatherData weatherData = (WeatherData)observable; lastPressure = currentPressure; currentPressure = weatherData.getPressure(); display(); } } public void display() { System.out.println("前の気圧:" + lastPressure + ", 気圧:" + currentPressure); } }
入出力結果(Terminal)
$ java Test 前の気圧:29.92, 気圧:30.4 前の気圧:30.4, 気圧:29.2 前の気圧:29.2, 気圧:29.2 $
0 コメント:
コメントを投稿