【デザインパターン】stateパターン

stateパターンは状態を表すクラスを導入することによって、状態に応じた処理を実行させるパターンです。

通常はif文等で状態を表す変数を評価して判断しますが、これをクラスに置き換えて処理するものです。

package com.example.state;

import java.text.SimpleDateFormat;

public interface State {
	public final static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
	
	public void setState(Context context);
	public void methodA();
	public void methodB();
}
package com.example.state;

public class ConcreteState1 implements State {
	private final static State state = new ConcreteState1();

	private ConcreteState1() {
		super();
	}
	
	public static State getInstance() {
		return state;
	}
	
	public void setState(Context context) {
		int value = context.getValue();
		if(value == 1) {
			context.changeState(ConcreteState2.getInstance());
		}
	}

	public void methodA() {
		
	}

	public void methodB() {
		
	}

}
package com.example.state;

public class ConcreteState2 implements State{
	private final static State state = new ConcreteState2();
	
	private ConcreteState2() {
		super();
	}
	
	public static State getInstance() {
		return state;
	}
	
	public void setState(Context context) {
		int value = context.getValue();
		if(value == 2) {
			context.changeState(ConcreteState1.getInstance());
		}
	}

	public void methodA() {
	}

	public void methodB() {
	}
}
package com.example.state;

public class Context {
	private int value;
	private State state = ConcreteState2.getInstance();
	
	public int getValue() {
		return value;
	}
	
	public void setValue(int value) {
		this.value = value;
		state.setState(this);
	}
	
	public void changeState(State state) {
		this.state = state;
	}
	
	public void methodA() {
		state.methodA();
	}
	
	public void methodB() {
		state.methodB();
	}
}
package com.example.state;

public class Main {
	public static void main(String args[]) {
		Context context = new Context();
		
		context.setValue(1);
		context.methodA();
		context.methodB();
		context.setValue(2);
		context.methodA();
		context.methodB();
	}

}

設定した値に応じてcontextに保持するクラスのインスタンスを保持し、

その状態に応じて実行する処理を、クラスの実装で処理を変更させています。

ITニュース(04/25)

第3世代になったiPhone SE、13 Proユーザーが触って感じた魅力と不満 – ITpro

iPhone SE(第3世代)の使用感はiPhone 13 Proと比べてどれくらい変わるのか。どういう用途に適しているのか。1週間ほど使ってみた率直な印象をレポートする。

大手商社が中古スマホ関連ビジネスを強化 – nhk.or.jp

携帯電話の通信料金と端末代金が分離され、価格が安い中古のスマートフォンの販売が伸びるなか、大手商社ではこうした需要を取り…

GeForce RTX 4000シリーズはPCIe 5.0非対応か。PCIe 4.0接続になる? – ニッチなPCゲーマーの環境構築Z

NVIDIAの次世代グラボ、GeForce RTX 4000シリーズですが、PCI Express 5.0 (PCIe 5.0)接続に対応しないかもしれません。海外メディアのVideoCardzが報…

iPhone14 Maxの価格、M3、デュアルM2 Ultra、iMac Proの噂 – iPhone Mania

 Bloombergのマーク・ガーマン記者がニュースレター「Power On」で、iPhone14シリーズと、新しいAppleシリコンの開発状況およびそれを搭載する新型Macに関する予想を伝…

東大阪の職質警官引きずり 22歳男を逮捕 – 読売テレビニュース

キオクシアの1TB SSDが10%引き中。Amazonタイムセール祭り – PC Watch

26日まで開催中のAmazonタイムセール祭りにおいて、キオクシアの外付けSSD「EXCERIA PLUS ポータブルSSD」が10%引きで提供中だ。500GBのモデルで800円引きの7,180円。1TBのモデルで1,450円引きの1万3,030円。2TBのモデルで2,980円引きの2万6,820円にて購入可能となっている。

泉佐野市の商業施設で警察がスマホに防犯アプリの登録呼びかけ|NHK 関西のニュース – nhk.or.jp

女性を狙った痴漢などの被害を防ごうと、大阪・泉佐野市の商業施設で、警察官らが防犯情報を伝えるスマートフォンアプリへの登録を買い物客に呼びか…

ASUSの有機EL搭載ノートPCが2万5千円オフ。Amazonタイムセール祭り – PC Watch

26日まで開催中のAmazonタイムセール祭りにおいて、ASUSの有機ELディスプレイ搭載ノートPCが割り引き価格にて販売中だ。「Vivobook Pro 15 OLED」は、2万5,000円引きの10万4,800円にて購入可能。

日本初のSIMフリー! Galaxy M23 5GをGalaxy Harajukuで買ってきた (1/2) – ASCII.jp

日本ではキャリア経由でスマートフォンを販売しているサムスン電子が、ついに単体で購入できるSIMフリーモデルの販売を開始しました。

5Gが使える格安SIMが増えてきたが、5Gにするメリットあるかどうかを考えた (1/2) – ASCII.jp

MVNOの格安SIMにおける5G対応を整理するとともに、5Gに移行するメリットはあるのかを考えた。

HHKBとREALFORCEキーボードが約5千円引き。Amazonでタイムセール中 – PC Watch

Amazonは26日までタイムセール祭りを開催中。この中でHappy Hacking Keyboard(HHKB)およびREALFORCEのキーボードを割引価格で提供している。

【Amazon】タイムセール祭りがついに開始。Fire TV Stick、タブレット、ゲーミングモニター、デスク、nasne、『ウマ娘』Blu-rayなどの注目商品はコレ! – ファミ通.com

Amazon.co.jp(アマゾン)は、2022年4月24日9:00~4月26日23:59の期間、恒例のタイムセール祭りを開催。本稿では対象となるnasneやゲーム周辺機器など、目玉・おすすめ商品をピックアップして紹介する。

バッファローのスティック型SSDが12%オフの6,590円。Amazonタイムセール祭り – PC Watch

Amazonは26日までタイムセール祭りを開催中。この中でバッファロー製スティック型SSDの500GBモデル「SSD-PUT500U3-B/N」を12%オフの6,590円で販売している。

「Google Pixel Watch」の実物写真がリーク。テストモデルのデザインはリークとほぼ一致 – HelenTech

ここ数日で様々なリークや情報が登場しているGoogle謹製スマートウォッチ「Pixel Watch」ですが、ついに実物と見られる写真がリークされました。この写真は米国のレストランに残されていたもの(わざと置き忘れた?)をAndroid Ce…

Intel Alder Lake CPUが曲がらないか心配ですか?Thermalrightはそんなあなたのために完璧な解決策を用意しています。 – 自作ユーザーが解説するゲーミングPCガイド

先日、Intelの第12世代Alder Lake CPUが、LGA 1700ソケットに載せた状態で曲がる可能性があるとお伝えした。 ユーザーは、同社によるIndependent Loading Mec

宮古島の「エネルギー革命」 太陽光パネルとエコ給湯機を無料配布で光熱費激減!【山口豊アナが見たSDGs最前線】(2019年9月) – ANNnewsCH

テレビ朝日アナウンサー 山口豊今回ご紹介するのは、沖縄・宮古島のエネルギー自給率向上を目指す取り組みです。島では市営住宅に、太陽光パネルとエコ給湯器を無償で設置。遠隔操作で集中管理して、太陽光のエネルギーで沸かしたお湯を貯めておき、夜間に利用しているのです。もちろん、住民は光熱費が安くなるというメリットも!さらに…

経済ニュース(04/25)

【今朝の5本】仕事始めに読んでおきたい厳選ニュース – ブルームバーグ

「75ベーシスポイント(bp、1bp=0.01%)は、新たな25bpとなった」(バンク・オブ・アメリカのマイケル・ハートネット氏)との表現が登場するほどに、大幅な米利上げ見通しは市場に浸透してきました。米連邦準備制度理事会(FRB)からはパウエル議長をはじめ、50bpの利上げに肯定的なタカ派の語調が相次いでいます。今週は米国のインフレに関する重要指数が2本、いずれも29日に発表されます。エコノミストの予想では、1-3月(第1四半期)の雇用コスト指数は前期比1.1%上昇。米金融当局がインフレ目標の基準値としている個…

名古屋駅の地下深くへ、進む「リニア駅」巨大工事 | 新幹線 – 東洋経済オンライン

上空から見下ろすと、駅と交差するように地上の建築物が撤去されている様子がよくわかる。JR名古屋駅で進む、リニア中央新幹線の建設現場。これから地下で本格的な工事が始まろうとしている。JR東海が行っている東…

「自分の能力は高くない」と思っている人ほど、やるべきことを見極められる – ダイヤモンド・オンライン

この3月に『起業家の思考法 「別解力」で圧倒的成果を生む問題発見・解決・実践の技法』を出版した株式会社じげん代表取締役社長の平尾丈氏。25歳で社長、30歳でマザーズ上場、35歳で東証一部へ上場し、創業以来12期連続で増収増益を達成した気鋭の起業家だ。そんな平尾氏が「ミスター別解力」と呼ぶのが株式会社グッドパッチ代表取締役CEOの土屋尚史氏。2011年の創業以来、Gunosyやマネーフォワードなど数々のスタートアップのUX/UIデザインを手がけてきた。急成長による組織崩壊を乗り越え、2020年にはデザイン会社として…

高まるエネルギー不安(中) 脱化石燃料・脱炭素化に転機 – 日本経済新聞

ウクライナ危機は、国民生活や産業の血液であるエネルギーの低廉かつ安定的な供給が死活的に重要なこと、エネルギーの安定供給は地政学の影響を大きく受けることを再認識させた。この点を骨身にしみて感じているのは欧州、特にドイツだろう。脱原発、脱石炭を掲げるドイツは、風力などの変動性再生可能エネルギーの導入を強力に進める一方、再エネの出力変動の大部分をロシア産天然ガスで調整することとしていた。だがウクライ

100円ショップ以下で高コスパ! 無印良品「99円のお菓子」はスナックから駄菓子まで種類豊富 – ライブドアニュース – livedoor

新商品から価格見直し品まで! 無印良品「99円のお菓子」シリーズクッキーやスナック、揚げ菓子などお菓子類も充実している無印良品。これまで100円や120円だった商品の価格を見直して99円にしたり、新たな商品を発

人とペットによかった「建材&設備」10年住んでみた結果 – ライブドアニュース – livedoor

家を建てるとき、室内でペットを飼っている家庭では、人間だけでなくペットにとっても安全で快適な建材設備を選びたいものです。10年前にハウスメーカーで家を建てた日刊Sumaiライターは、5年前から犬を飼い始めまし

電力自由化から6年、乗り換えた人は2割 約6割が月1000円未満の節約 – ライブドアニュース – livedoor

保険マンモス株式会社が、全国の男女500人を対象に調査を実施した。電力自由化から6年が経ち、電力会社を変更したという人は約2割に。変更して実際に節約できた金額は、約6割の人が月1000円未満だったという

レクサスが新しい四輪駆動力システム「DIRECT4」を搭載した初のBEV専用モデル「RZ」を公開(@DIME)(ヘッドライン) | 自動車情報サイト【新車・中古車】 – carview! – carview!

レクサスは4月20日、バッテリーEV(以下、BEV)専用モデルとなる新型「RZ」の詳細を世界初公開した。2030年までに全カテゴリーでBEVのフルラインアップを実現2005年のRX400h発売以降、ラグジュアリー市場における電動化の先駆者と…(ヘッドライン)

発表前にお披露目! 新型「ステップワゴン」正式発表前に登場! 車中泊&アウトドアにも最適な仕様とは – くるまのニュース

ホンダ新型「ステップワゴン」の用品装着車両が2022年5月14日/15日の2日間開催される「アウトドアデイジャパン名古屋 2022」に展示されます。

利益成長【青天井】銘柄リスト〔12-2月期〕 13社選出 <成長株特集> – minkabu PRESS

2月期決算企業を中心と…

【ポテ通】決して “安かろうまずかろう” ではないことを教えてくれた恐怖のポテト / カンバ通信:第155回 – ロケットニュース24

ジャンボ。日本には「安かろう悪かろう」という言葉があるとゴー(羽鳥)から聞いた。それはポテトの世界も同じであるとオレは思う。事実、高いポテトは例外なく美味く、 …

【Amazon】タイムセール祭りでFire TV Stick、Echoシリーズ、Kindleシリーズを買うチャンス! お買い得なAmazonデバイスを厳選 – ファミ通.com

Amazon.co.jp(アマゾン)にて恒例のタイムセール祭りが開催中。お買い得となるFire TV Stick、Echoシリーズ、Kindleシリーズなどの人気・おすすめAmazonデバイスをまとめてお届け!

指導役と相性最悪「4日」で退職 – goo.ne.jp

多くの時間と労力が費やされる就職活動。新卒でも中途でも、内定を獲得したら安易に辞めることは避けたいし、できれば長く働きたいというのが本音だろう。だが、そんな思い…

ドル円見通し 130円乗せへやや慎重、高値切り上げ後の底上げ基調を維持できるか試す(週報4月第4週) – FX羅針盤

129円台を維持できずに週を終えたものの、3月後半からの上昇トレンドを維持しており、4月28日の日銀金融政策発表を待ちながらも高値更新を試す位置取りとなっている。

Apple、長期間アップデートしていないアプリをApp Storeから削除すると勧告 – iPhone Mania

 Appleは、2年以上アップデートされていないアプリをApp Storeから削除することを進めており、開発者たちはアプリの削除勧告のメッセージを受け取っている、と報じられています。アップデ…

ついつい手が伸びるレジ横の和菓子 コンビニの豆大福を各社徹底比較した – ライブドアニュース – livedoor

春の季節にホッと一息つきたいときについいただきたくなる和菓子。本格的な和菓子専門店では1個だけ買うっていうのもなんだか気が引ける感じがあります。一方、コンビニ各チェーンでは様々な和菓子を用意しており、1

セブンイレブンで発見した「お店で作るスムージー」に感動!! …するも、記事にしようとしたら衝撃的事実発覚 – ロケットニュース24

ひさしぶりにセブンイレブンに行ってみた。メルカリで売れた商品を発送するためだ。そしてなにげなくアイスの冷凍庫に目をやると……なななな、なんだ? 見慣れないものが …

【明日の好悪材料】を開示情報でチェック! (4月22日発表分) – Yahoo!ファイナンス

【好材料】  ――――――――――――

■ヤマト <1967> [東証S]
前期経常を一転15%増益に上方修正・2…

日本初のSIMフリー! Galaxy M23 5GをGalaxy Harajukuで買ってきた (1/2) – ASCII.jp

日本ではキャリア経由でスマートフォンを販売しているサムスン電子が、ついに単体で購入できるSIMフリーモデルの販売を開始しました。

「やっぱり気になる…」 新型SUVに「ゴルフバッグ」いくつ載る? 新型「bZ4X」「ソルテラ」「アリア」の荷室を比較! – くるまのニュース

BEVの国産SUVが続々と発表され、トヨタ「bZ4X」、スバル「ソルテラ」、日産「アリア」が登場しました。3車種の室内や荷室の広さを比較してみます。