coursera で受けている, POSA の講義で出てきた Wrapper Facade Pattern について調べてみたまとめです.

Wrapper Facade とは

ソケットなどの OS に依存するような native methods に対してラッパーライブラリを作成すること.

encapsulate low-level functions and data
structures with object-oriented (OO) class interfaces.

メリット

以下のメリットがある.

  • Non-OOP 言語が OOP で利用できたり (Type-safe I/F)
  • OS 依存がなくなったり, (Portable)
  • コンパイル時にエラーをチェックする機能を作り込んだりして, API error-prone (誤りがちな) を防ぐ.

Facade や Bridge と異なり, 薄く, Light weight な実装でオーバヘッドがないことが特徴.

coursera の posa 講義で出てきたパターン. Doug 氏 の論文.

Ruby のソケットライブラリの例

Ruby の Socket Library がよい例. bind や listen を TCPServer メソッドで隠している. 言語レベルでサポートされていることが多い?

server = TCPServer.new (4481)

# =>
server = Socket.new (:INET, :STREAM)
addr = Socket.pack_sockaddr_in (4481, "0.0.0.0")
server.bind (addr)
server.listen (5)

Special Thanks