/*
定義介面的方式:鴨式辯型,最完美的定義方式
鴨式辯型核心:乙個類實現介面的主要目的:把介面的方法都實現(對所有方法進行檢測)
完全物件物件,**也實現統一,也解耦了
*///一,介面類
//name:介面的名字(string)
//methods:接受方法名稱的集合(陣列形式)
var inte***ce = function(name,methods)
this.name = name;
//定義乙個空陣列物件,存放methods裡的方法
this.methods = ;
for(var i=0, len = methods.length; ithis.methods.push(methods[i]);}}
//二,準備工作
//例項化介面物件
var compositeinte***ce = new inte***ce('compositeinte***ce',['add','remove']);
var formiteminte***ce = new inte***ce('formiteminte***ce',['update','select']);
//具體的實現類
var compositeimpl = function()
compositeimpl.prototype.add = function()
compositeimpl.prototype.remove = function()
compositeimpl.prototype.update = function()
compositeimpl.prototype.select = function()
//三,校驗介面裡的方法
//通過不做任何操作,不通過則丟擲異常
//這個方法的目的,就是檢測方法的
inte***ce.ensureimplements = function(object)
//獲得介面例項物件
for(var i=1, len = arguments.length; i//迴圈介面例項物件裡面的每乙個方法
for(var j=0; j}}}
var com = new compositeimpl();
inte***ce.ensureimplements(com,compositeinte***ce,formiteminte***ce);
com.add();
C 介面的三種實現方式
原文c 介面的三種實現方式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 4...
C 介面的三種實現方式
public inte ce myinte ce class myclass myinte ce method2是overridable的實現。簽名如下 method public hidebysig newslot virtual 注意 public virtual public virtual ...
idea 呼叫c 介面 C 介面的三種實現方式
public inte ce myinte ce 下面三個方法的簽名都是 method public hidebysig newslot abstract virtual public virutal abstract void method1 void method2 void method3 c...