続・RubyでStrategy

先日の日記にRubyにはJavaでいうインターフェイスや抽象メソッドはないと
書きましたが、moduleという機能で似たような目的を果たすことができるようです。moduleはインターフェイスとTemplate Methodパターンを組み合わせたようなものでしょうか(下記のような使い方をしたからかもしれません)。便利そうです。
・・・って書いていたのですが、風呂で考えているとちょっと違うような気もしてきました。勘違いしてたら誰か教えてください。

書き直したEncryptクラス

# モジュールの定義
# Encryptをmixinするクラスは、
#必ずencodeString(str)メソッドを実装しなければならない!
module Encrypt
  def encode(str)
    return encodeString(str)
  end
end

class NullEncrypt
 include Encrypt
  def encodeString(str)
    return str
  end
end

class ReverseEncrypt
  include Encrypt
  #encodeStringメソッドがないとEncypt.encodeが実行できないため
  #例外が発生する
end