道教徒者,得法无量天尊。
佛教徒者,得法阿弥陀佛。
今有佛寺,行法阿弥陀佛。
适配器者,阿弥转无量也。

Object Adapter Pattern:

Ruby Code:

class T道教徒
    def initialize 名字
        @名字 = 名字
    end
    def 无量天尊
        puts "无量天尊,贫道乃#{@名字}。"
    end
end

class B佛教徒
    def initialize 名字
        @名字 = 名字
    end
    def 阿弥陀佛
        puts "阿弥陀佛,贫僧乃#{@名字}。"
    end
end

class A适配器
    def initialize 名字
        @道教徒 = T道教徒.new 名字
    end
    def 阿弥陀佛
        @道教徒.无量天尊
    end
end

def 佛寺 某人
    某人.阿弥陀佛
end

智缘 = B佛教徒.new '智缘'
纯父 = A适配器.new '纯父'

佛寺 智缘
佛寺 纯父

ECMAScript/JavaScript Code:

"use strict";

class 道教徒 {
  constructor(名字) {
    this.名字 = 名字;
  }
  无量天尊() {
    return console.log(`无量天尊,贫道乃${ this.名字 }。`);
  }
}
class 佛教徒 {
  constructor(名字) {
    this.名字 = 名字;
  }
  阿弥陀佛() {
    return console.log(`阿弥陀佛,贫僧乃${ this.名字 }。`);
  }
}
class 适配器 {
  constructor(名字) {
    this.名字 = 名字;
    this.道教徒 = new 道教徒(this.名字);
  }
  阿弥陀佛() {
    return this.道教徒.无量天尊();
  }
}
var 佛寺 = function (某人) {
  return 某人.阿弥陀佛();
};
var 智缘 = new 佛教徒('智缘');
var 纯父 = new 适配器('纯父');
佛寺(智缘);
佛寺(纯父);

CoffeeScript Code:

class 道教徒
  constructor: (@名字) ->

  无量天尊: ->
    console.log "无量天尊,贫道乃#{@名字}。"

class 佛教徒
  constructor: (@名字) ->

  阿弥陀佛: ->
    console.log "阿弥陀佛,贫僧乃#{@名字}。"

class 适配器
  constructor: (@名字) ->
    @道教徒 = new 道教徒 @名字

  阿弥陀佛: ->
    @道教徒.无量天尊()

佛寺 = (某人) ->
  某人.阿弥陀佛()

智缘 = new 佛教徒 '智缘'
纯父 = new 适配器 '纯父'

佛寺 智缘
佛寺 纯父

Class Adapter Pattern:

Ruby Code:

class T道教徒
    def initialize 名字
        @名字 = 名字
    end
    def 无量天尊
        puts "无量天尊,贫道乃#{@名字}。"
    end
end

class B佛教徒
    def initialize 名字
        @名字 = 名字
    end
    def 阿弥陀佛
        puts "阿弥陀佛,贫僧乃#{@名字}。"
    end
end

class A适配器 < T道教徒
    def 阿弥陀佛
        无量天尊
    end
end

def 佛寺 某人
    某人.阿弥陀佛
end

智缘 = B佛教徒.new '智缘'
纯父 = A适配器.new '纯父'

佛寺 智缘
佛寺 纯父

ECMAScript/JavaScript Code:

"use strict";

class 道教徒 {
  constructor(名字) {
    this.名字 = 名字;
  }
  无量天尊() {
    return console.log(`无量天尊,贫道乃${ this.名字 }。`);
  }
}
class 佛教徒 {
  constructor(名字) {
    this.名字 = 名字;
  }
  阿弥陀佛() {
    return console.log(`阿弥陀佛,贫僧乃${ this.名字 }。`);
  }
}
class 适配器 extends 道教徒 {
  阿弥陀佛() {
    return this.无量天尊();
  }
}
var 佛寺 = function (某人) {
  return 某人.阿弥陀佛();
};
var 智缘 = new 佛教徒('智缘');
var 纯父 = new 适配器('纯父');
佛寺(智缘);
佛寺(纯父);

CoffeeScript Code:

class 道教徒
  constructor: (@名字) ->

  无量天尊: ->
    console.log "无量天尊,贫道乃#{@名字}。"

class 佛教徒
  constructor: (@名字) ->

  阿弥陀佛: ->
    console.log "阿弥陀佛,贫僧乃#{@名字}。"

class 适配器 extends 道教徒
  阿弥陀佛: ->
    this.无量天尊()

佛寺 = (某人) ->
  某人.阿弥陀佛()

智缘 = new 佛教徒 '智缘'
纯父 = new 适配器 '纯父'

佛寺 智缘
佛寺 纯父
Comments
Write a Comment