言語Design Pattern-interface
<モジュールがユーザに密接に接続されている場合>
上の図に示すように、ユーザーとモジュール間の緊密な接続が表示されます.
この場合、モジュールを使用するには、モジュールの内容を理解する必要があります.また、モジュール1,2を使用するには、ユーザが一部のアルゴリズムを実装しなければならない.モジュール1,2のアルゴリズムが変更されると、ユーザのコードも変更される.
<モジュールへのユーザーの接続が弱い場合>
インタフェースは、メイン関数に個別のアルゴリズムを実装する必要はなく、アルゴリズムを変更するときにユーザーコードを変更する必要もありません.
私たちはこれからこのような構造で符号化します.
C言語では、Main関数も起点です.したがって、コードを表示すると、まずmain関数が表示され、main関数は非常に重要です.したがってmain関数を作成する際に注意すべき点はいくつかあります.
<main関数を作成する際の注意事項>
1)実現アルゴリズムまたは論理
2)大量変数の初期化
3)過多な制御文
4)コード量が多すぎる
上記の注意事項はmain関数を複雑にし、その毒性と効率を低下させる.
mainで符号化する場合,インタフェース全体を設計して符号化することが重要である.
main関数には初期化関数と所定が含まれます.
<インタフェースとして設定>
typedef bool (*open_t)(void)
typedef bool (*close_t)(void)
typedef struct{
open_t open;
close_t close;
}uart_t
static bool open(void);
static bool close(void);
uart_t* init_uart1(void)
{
static uart_t uart;
uart.open = open;
uart.close = close;
return &uart;
}
static bool open(void)
{
//TODO: OPEN 함수 작성
return TRUE;
}
static bool close(void)
{
//TODO: CLOSE 함수 작성
return TRUE;
}
int main(void)
{
uart_t* uart1;
uart1 = init_uart();
uart1->open();
uart1->close();
return 0;
}
MCUは通常2つ以上のMCUを有するので、上記インタフェースを作成すればUART 2を実施してもuartのインタフェースを用いて実施することができる.Reference
この問題について(言語Design Pattern-interface), 我々は、より多くの情報をここで見つけました https://velog.io/@audgus47/C언어-Design-Pattern-interfaceテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol