SlideShare a Scribd company logo
山口 博史 
クラスデザインで気をつけたいこと
クラスデザインとは
2
クラスデザイン = クラス設計
    こんなクラスはイヤだ
こんなクラスはイヤだ
4
同じ処理がいくつも書いてある
こんなクラスはイヤだ
5
StringUtil なのに足し算のメソッドがあ
る
こんなクラスはイヤだ
6
Public メソッドが 50 個
こんなクラスはイヤだ
7
似たような処理なのにコピーして
同じものを作らないと作れない
こんなクラスはイヤだ
8
新しい検索条件を加えるのに、
すべての条件を再テスト
気をつけたいこと
9
1. 共通化
2. 役割の明確化
3. 汎用性
1.共通化
10
同じ処理は2つ書かない!
2.役割の明確化
11
どのような処理がこのクラスの役
割か
3.汎用性
12
どんな処理が追加されるかの想像
事例紹介
13
こんな感じでクラス設計してます
どんなクラスが理想か
14
理想は、誰でも読みやすく、
保守がかんたん!
15
ご成長ありがとうございました

More Related Content

More from yumi_chappy

Why
WhyWhy
Itelt vol7 7
Itelt vol7 7Itelt vol7 7
Itelt vol7 7
yumi_chappy
 
Itelt vol7 1
Itelt vol7 1Itelt vol7 1
Itelt vol7 1
yumi_chappy
 
Itelt vol7 9
Itelt vol7 9Itelt vol7 9
Itelt vol7 9
yumi_chappy
 
Itelt vol7 8
Itelt vol7 8Itelt vol7 8
Itelt vol7 8
yumi_chappy
 
Itelt vol7 6
Itelt vol7 6Itelt vol7 6
Itelt vol7 6
yumi_chappy
 
Itelt vol7 2
Itelt vol7 2Itelt vol7 2
Itelt vol7 2
yumi_chappy
 
Itelt vol7 5
Itelt vol7 5Itelt vol7 5
Itelt vol7 5
yumi_chappy
 
Itelt vol7 4
Itelt vol7 4Itelt vol7 4
Itelt vol7 4
yumi_chappy
 
Itelt vol7 3
Itelt vol7 3Itelt vol7 3
Itelt vol7 3
yumi_chappy
 
理想の教育、上から見るか?下から見るか?
理想の教育、上から見るか?下から見るか?理想の教育、上から見るか?下から見るか?
理想の教育、上から見るか?下から見るか?
yumi_chappy
 
JAWS DAYS Report
JAWS DAYS ReportJAWS DAYS Report
JAWS DAYS Report
yumi_chappy
 
資料ビジュアル化のススメ
資料ビジュアル化のススメ資料ビジュアル化のススメ
資料ビジュアル化のススメ
yumi_chappy
 
美ら海水族館から考えるユーザー心理
美ら海水族館から考えるユーザー心理美ら海水族館から考えるユーザー心理
美ら海水族館から考えるユーザー心理
yumi_chappy
 
IoT製品の魅力
IoT製品の魅力IoT製品の魅力
IoT製品の魅力
yumi_chappy
 
新しい家族を紹介します~1台と1匹~
新しい家族を紹介します~1台と1匹~新しい家族を紹介します~1台と1匹~
新しい家族を紹介します~1台と1匹~
yumi_chappy
 
Windows10でword2vecを使ってみた
Windows10でword2vecを使ってみたWindows10でword2vecを使ってみた
Windows10でword2vecを使ってみた
yumi_chappy
 
色で伝えるイメージ
色で伝えるイメージ色で伝えるイメージ
色で伝えるイメージ
yumi_chappy
 
バランスを整える
バランスを整えるバランスを整える
バランスを整える
yumi_chappy
 
脆弱性のふさぎ方
脆弱性のふさぎ方脆弱性のふさぎ方
脆弱性のふさぎ方
yumi_chappy
 

More from yumi_chappy (20)

Why
WhyWhy
Why
 
Itelt vol7 7
Itelt vol7 7Itelt vol7 7
Itelt vol7 7
 
Itelt vol7 1
Itelt vol7 1Itelt vol7 1
Itelt vol7 1
 
Itelt vol7 9
Itelt vol7 9Itelt vol7 9
Itelt vol7 9
 
Itelt vol7 8
Itelt vol7 8Itelt vol7 8
Itelt vol7 8
 
Itelt vol7 6
Itelt vol7 6Itelt vol7 6
Itelt vol7 6
 
Itelt vol7 2
Itelt vol7 2Itelt vol7 2
Itelt vol7 2
 
Itelt vol7 5
Itelt vol7 5Itelt vol7 5
Itelt vol7 5
 
Itelt vol7 4
Itelt vol7 4Itelt vol7 4
Itelt vol7 4
 
Itelt vol7 3
Itelt vol7 3Itelt vol7 3
Itelt vol7 3
 
理想の教育、上から見るか?下から見るか?
理想の教育、上から見るか?下から見るか?理想の教育、上から見るか?下から見るか?
理想の教育、上から見るか?下から見るか?
 
JAWS DAYS Report
JAWS DAYS ReportJAWS DAYS Report
JAWS DAYS Report
 
資料ビジュアル化のススメ
資料ビジュアル化のススメ資料ビジュアル化のススメ
資料ビジュアル化のススメ
 
美ら海水族館から考えるユーザー心理
美ら海水族館から考えるユーザー心理美ら海水族館から考えるユーザー心理
美ら海水族館から考えるユーザー心理
 
IoT製品の魅力
IoT製品の魅力IoT製品の魅力
IoT製品の魅力
 
新しい家族を紹介します~1台と1匹~
新しい家族を紹介します~1台と1匹~新しい家族を紹介します~1台と1匹~
新しい家族を紹介します~1台と1匹~
 
Windows10でword2vecを使ってみた
Windows10でword2vecを使ってみたWindows10でword2vecを使ってみた
Windows10でword2vecを使ってみた
 
色で伝えるイメージ
色で伝えるイメージ色で伝えるイメージ
色で伝えるイメージ
 
バランスを整える
バランスを整えるバランスを整える
バランスを整える
 
脆弱性のふさぎ方
脆弱性のふさぎ方脆弱性のふさぎ方
脆弱性のふさぎ方
 

Recently uploaded

FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 

Recently uploaded (16)

FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)