「抽象化」の版間の差分
Administrator (トーク | 投稿記録) ページの作成:「'''抽象化'''とは、プログラミングにおいて、特定のプラットフォームや実装に依存する部分を直接扱わず、共通化されたインターフェースや概念で置き換えることで、コードをプラットフォーム非依存にする設計手法です。 == 利点 == たとえばAndroidとiOSの両方でほぼ同じ使い勝手のライブラリを実装したりすることをいいます。 * Abstract = 共通 **…」 |
Administrator (トーク | 投稿記録) |
||
| (同じ利用者による、間の3版が非表示) | |||
| 2行目: | 2行目: | ||
== 利点 == | == 利点 == | ||
たとえば[[.NET for Android]]と[[.NET for iOS]]の両方でほぼ同じ使い勝手のライブラリを実装したりすることをいいます。 | |||
* Abstract = 共通 | * Abstract = 共通 | ||
** iOS | ** iOS | ||
** Android | ** Android | ||
これを利用することで[[移植]]が捗るようになります。 | |||
== 欠点 == | == 欠点 == | ||
基本的に抽象化を行うと「プラットフォーム共通で利用できる機能の最小公倍数」となるため、プラットフォームの特徴的な細かい機能を利用できないなどの弊害が発生します。 | |||
[[スティーブ・ジョブス]]が[[iPhone]]を売る際に[[Adobe Flash]]を叩きまくったやつです。 | |||
とくにプラットフォームを増やしすぎるとどんどん機能が減って残念なことになります。抽象化ライブラリを作る際は「スマホに特化してiOSとAndroidだけ」などと絞り込むことが重要になります。ここに[[Windows]]を加えて[[MAUI]]を作ったり、[[Mac]]を加えて[[Mac Catalyst]]を作ったりすると悲惨なことになります。 | |||
== 結論 == | == 結論 == | ||
2025年9月2日 (火) 01:18時点における最新版
抽象化とは、プログラミングにおいて、特定のプラットフォームや実装に依存する部分を直接扱わず、共通化されたインターフェースや概念で置き換えることで、コードをプラットフォーム非依存にする設計手法です。
利点[編集 | ソースを編集]
たとえば.NET for Androidと.NET for iOSの両方でほぼ同じ使い勝手のライブラリを実装したりすることをいいます。
- Abstract = 共通
- iOS
- Android
これを利用することで移植が捗るようになります。
欠点[編集 | ソースを編集]
基本的に抽象化を行うと「プラットフォーム共通で利用できる機能の最小公倍数」となるため、プラットフォームの特徴的な細かい機能を利用できないなどの弊害が発生します。
スティーブ・ジョブスがiPhoneを売る際にAdobe Flashを叩きまくったやつです。
とくにプラットフォームを増やしすぎるとどんどん機能が減って残念なことになります。抽象化ライブラリを作る際は「スマホに特化してiOSとAndroidだけ」などと絞り込むことが重要になります。ここにWindowsを加えてMAUIを作ったり、Macを加えてMac Catalystを作ったりすると悲惨なことになります。
結論[編集 | ソースを編集]
手を広げすぎないこと。バランスが重要です。