デザインパターンの基礎概念と実践ガイド
デザインパターンの必要性
コードの再利用性を高め、要件やシステムの変化に対応するためには、適切な設計が不可欠です。デザインパターンは、過去の経験から蓄積された最適な設計ソリューションを提供し、開発者がより効率的に高品質なソフトウェアを構築するための道筋を示します。
オブジェクト指向デザインパターン
オブジェクト指向プログラミングの三大メカニズムで ...
7月4日 23:30 投稿
C++におけるクラスとオブジェクトの基本
クラスは、データ(属性)とそのデータを操作する関数(メソッド)を一つの単位としてまとめる仕組みです。この統合により、現実世界の概念をコード上で自然に表現できます。
アクセス制御
メンバーには public、private、protected のアクセス修飾子を指定でき、外部からのアクセス範囲を制御します。friend 宣言された関数やクラスは、private や protected メンバーに ...
7月1日 19:34 投稿
Java継承と抽象クラスの実践的学習
第一部分:理論知識の学習
第五章:継承と多様性
第五章の学習内容は主に七つのモジュールに分かれています:
クラス、スーパークラス、サブクラス
a. クラス継承の形式:class 新しいクラス名 extends 既存クラス名
b. 既存のクラスは:スーパークラス(superclass)、基底クラス(base class)または親クラス(parent class)と呼ばれます
新しいクラスは:サブクラス ...
7月1日 16:44 投稿
Javaのオブジェクト指向概念詳細
静的コードブロック
public class Employee {
//2
{
System.out.println("初期化ブロック");
}
//1 一度だけ実行
static {
System.out.println("静的コードブロック");
}
//3
public Employee() {
System.out.println("コンストラクタ");
}
}
実行順序は、まず静的コードブロック(一度のみ)、次に初期化ブ ...
7月1日 00:11 投稿
継承とポリモーフィズムの実践的な理解
インスタンスの型確認
以下のJavaコードはinstanceof演算子を使用して、オブジェクトの型を確認する方法を示しています。
public class InstanceCheckDemo {
public static void main(String[] args) {
Object obj = "Java";
System.out.println("Object型か:" + (obj instanceof Object)); // true
System.out.println("String型か:" + (o ...
6月30日 17:59 投稿
ビルダーパターン
このパターンはよくあるカプセル化に感じる... シンプルファクトリよりどこが優れているのか分からない
ビルダーパターン
モチベーション
複雑なオブジェクトの生成プロセスとその表現を分離し、同一の生成プロセスで異なる表現を持つオブジェクトを生成できるようにする
多くの部分や設定オプションを含む複雑なオブジェクトを生成する必要があり、かつ生成プロセスを ...
6月26日 23:01 投稿
Pythonのオブジェクト指向プログラミング:カプセル化とコンストラクタ
2. カプセル化
オブジェクト指向プログラミングの三大特徴は、カプセル化、継承、ポリモーフィズムです。
2.1 カプセル化の理論
2.1.1 カプセル化とは何か
オブジェクト指向プログラミングにおいて、オブジェクトの属性(データ)と振る舞い(メソッド)をオブジェクト内部に設計し、オブジェクト内のデータが外部から意図せずアクセスまたは変更されることを防ぐことを ...
6月24日 21:35 投稿
フィルターパターンを用いた設計の実践
フィルターパターンの基本構造
フィルターパターンは、リクエスト処理やデータ変換において、各処理を独立したフィルターとして実装し、チェーン形式で処理をつなぎ合わせるデザインパターンです。この方式により、各フィルター間の結合度を低く保ちつつ、柔軟な拡張性を持たせることができます。
以下は、フィルターインターフェースとその実装クラス、チェーン構造を管 ...
6月17日 22:53 投稿
Java後端開発者向け面接対策:2025年春採用版
Java言語の基本概念
オブジェクト指向の三大原則(カプセル化、継承、多相性)について説明してください。
カプセル化は、データとその操作メソッドをクラス内にまとめて内部状態を隠蔽し、外部からは制御されたインターフェース経由でのみアクセス可能にする仕組みです。継承は、既存クラス(スーパークラス)のフィールドやメソッドを新たなクラス(サブクラス)が引き ...
6月17日 17:13 投稿
Javaのデザインパターン:コンポジットパターン
学習難易度:★★★☆☆,使用頻度:★★★★☆】
ソフトウェアにおけるツリー構造は至る所に見られます。例えば、オペレーティングシステムのディレクトリ構造、アプリケーションソフトウェアのメニュー、オフィスシステムの会社組織構造などが挙げられます。このようなツリー構造をオブジェクト指向の方法でどのように処理するかが、コンポジットパターンが解決すべき問題です。コ ...
6月15日 19:14 投稿