🕌

複合関数とロジック関数とは

2023/01/03に公開

複合関数とは

他の関数を呼び出すのみで自分自身は実際の処理を行わない関数のこと。
下記のコードでは、hoge()メソッドが複合関数となります。

function hoge(){
  a();
  b();
  c();
}

function a(){
 echo 'a';
}
function b(){
 echo 'b';
}
function c(){
 echo 'c';
}

ロジック関数とは

実際の処理を書く関数

ロジック関数のルール

1つだけで、複数の処理は書かない
複合関数は呼び出さない
ロジック関数を呼び出すことは可能

下記のコードでは、a(), b(), c()メソッドがロジック関数となります。

function hoge(){
  a();
  b();
  c();
}

function a(){
 echo 'a';
}
function b(){
 echo 'b';
}
function c(){
 echo 'c';
}

複合関数とロジック関数を知って何になるの?

SLAP(Single Level of Abstraction Principle)composed methodパターンで、複合関数とロジック関数という言葉が出てくるかもしれないので知っておいて損はないです。

複合関数とロジック関数をもとに、肥大化した関数を分割することができます。
そして、複合関数とロジック関数にしっかり分けてあげることで、単一責任原則を実現できます。

分割前

function hoge(){
 echo 'a';
 echo 'b';
 echo 'c';
}

分割後

function hoge(){
  a();
  b();
  c();
}

function a(){
 echo 'a';
}
function b(){
 echo 'b';
}
function c(){
 echo 'c';
}

参照

https://zenn.dev/arei/scraps/feec34bec65ab2
https://qiita.com/xuj/items/6d1dc4373798a8a5f22c
https://qiita.com/tbpgr/items/06266a4161019b445756
https://stonebeach-dakar.hatenablog.com/entry/2016/11/19/124029

Discussion