広告

第12話:コードを再利用!「継承 (inheritance)」でスマートコントラクトを賢く拡張する

第12話:コードを再利用!「継承 (inheritance)」でスマートコントラクトを賢く拡張する

概要

同じコードのコピペにサヨナラ!オブジェクト指向の核心「継承」を解説します。Ownableのような共通機能を親コントラクトとして分離し、isキーワードでその全機能を子コントラクトに引き継ぐ方法を学習。

virtualとoverrideによる機能拡張も学び、安全で整理されたDApp開発を実現する、プロ必須の設計思想が身につきます。

目次
Solidity学習講座:最終版 目次(全20話)
Solidity学習講座:最終版 目次(全20話)

基礎編 第1話:未来のインターネットへようこそ!Solidityとスマートコントラクトの全体像 第2話:準備は1分!ブラウザだけで開発できる「Remix IDE」の基本操作 第3話:記念すべき初コント ...

続きを見る

はじめに

第11話では、msg.sendermsg.valueを駆使し、コントラクトに所有権の概念を導入し、さらにはETHを受け取る機能まで実装しました。特に、constructoronlyOwner修飾子を使った所有者管理のパターンは、多くのDAppで必要となる、非常に汎用性の高い機能です。

ここで、賢いエンジニアであるあなたは、当然こう考えるはずです。 「この便利な所有者管理のロジック、次に新しいコントラクトを作るときも絶対使うよな…。そのたびに、また同じコードをコピー&ペーストするのか? もし元のコードにバグが見つかったら、コピペした全てのコントラクトを修正して回るのか?」

その通り。コピー&ペーストによる開発は、非効率的で、バグの温床となり、メンテナンス性を著しく低下させます。この課題を解決するのが、今回学ぶ**「継承(Inheritance)」**という、オブジェクト指向プログラミング(OOP)の三大原則の一つです。

継承は、既存のコントラクトを「親」として、その機能や性質をまるごと「子」のコントラクトに引き継がせる仕組みです。これにより、あなたのコードは**DRY(Don't Repeat Yourself - 同じことを繰り返すな)**の原則に従い、再利用可能で、整理され、そして拡張しやすい、美しい構造を手に入れることができるのです。

-Solidity