IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
よくない設計 ! / ̄ ̄\ / _ノ \ | ( ●)(●) | (__人__) | ` ⌒´ノ | } ヽ } ヽ、.,__ __ノ _, 、 -― ''"::l:::::::\ー-..,ノ,、.゙,i 、 /;;;;;;::゙:':、::::::::::::|_:::;、>、_ l|||||゙!:゙、-、_ 丿;;;;;;;;;;;:::::i::::::::::::::/:::::::\゙'' ゙||i l\>::::゙'ー、 . i;;;;;;;;;;;;;;;;;;;;;;|::::::::::::::\::::::::::\ .||||i|::::ヽ::::::|:::! 年齢は? 店員(売る人) ! / ̄ ̄\ / _ノ \ | ( ●)(●) | (__人__) | ` ⌒´ノ |
PHP の interface なめんな を読みました。 Python も非 Duck typing の良さを順調に取り込んでいます。 Python で上記記事のサンプルを書くと from __future__ import print_function # for Python 2/3 compatibility import abc class Renderable(metaclass=abc.ABCMeta): def prepare(self, name): self.name = name @abc.abstractmethod def render(self): pass class Element(Renderable): def __init__(self, text): self.text = text def render(self): return '<{name}>
PHP5.4にはトレイトという文法が導入されて、多重継承の便利さが享受できるようになるそうです。 いろいろ試してみることにしました。 トレイトといえば代表選手はScalaですね。Scalaでいうトレイトは、インターフェースの定義とメソッドの実装を同時にやってくれる便利な概念でした。単一継承のOOP言語では「〜は〜の一種」という制約が強すぎて、「ペンギンは鳥の飛行メソッドによって飛行できてしまう」という問題があります。でもちゃんと「ペンギンは飛べないが泳げる鳥」を綺麗に解決する必要はあって、その解答として、トレイトのあるScalaではこんな解が導けます。 abstract class Animal abstract class Bird extends Animal { def hasBeak = true // 鳥にはかならずクチバシがある def hasWings = true // 翼
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く