機能的凝集

 以下の例は、オンラインショッピングカートのモジュール内の機能的に凝集したコードの一部を示しています。

 このサンプルコードではShoppingCartクラスがオンラインショッピングカートの機能をまとめています。
関連する機能(商品の追加、削除、注文処理、カート内容の表示)が同じクラス内にあり、単一の機能(カート操作)に関連しています。

 機能的凝集の特徴として、単一の目的または機能に関連するコードが1つのモジュール内にまとまり、モジュールがシンプルかつ明確になることが挙げられます。

<?php

class ShoppingCart
{
    private $items = [];

    public function addItem($product, $quantity)
    {
        // 商品をカートに追加する処理
        $this->items[$product] = $quantity;
    }

    public function removeItem($product)
    {
        // 商品をカートから削除する処理
        unset($this->items[$product]);
    }

    public function checkout()
    {
        // カート内の商品を注文処理
        // 送料計算、支払い処理、注文確定などの機能がこのメソッド内に関連付けられています。
    }

    public function showCartContents()
    {
        // カート内の商品を表示する処理
    }
}