私の質問に疑問を呈する仮想シナリオ:Matlabでクラスインスタンスをハンドルとして渡す方法
2つのエンティティ、つまり上司と従業員があるとします。従業員が仕事を完了するとき、従業員は人々に知らせることを望みます。この場合、上司の「種別」はメッセージを購読して何をすべきかを決定します。
他のどのクラスでも実装できる抽象メソッドを持つこのインターフェイスを実装しました。この中で(彼原因/彼女が彼/彼女が何をしたいのかを決定します):
classdef (Abstract) Interface < handle
methods
getJobsCompleted(n)
end
end
ボスクラスはメソッドgetJobsCompleted()
classdef Boss < Interface & handle
properties
myEmployee
end
methods
function this = Boss()
this.myEmployee = Employee(this)
this.myEmployee.doJobs();
end
%My boss implements (i.e. decides what to do) the abstract method
function getJobsCompleted(n)
%DO SOMETHING with n
end
end
end
そして、最後に、従業員のインタフェースを継承して実装しますジョブを実行して上司に通知します。私は失敗しませんしようとしてきた何
classdef Employee < handle
properties
numJobsCompleted;
boss = [];%pointer or reference to Boss instance
end
methods
function this = Employee(myBoss)
this.boss = myBoss; %reference/pointer to my boss so I know who to notify
end
function doJobs()
%% do something then let boss know
this.numJobsCompleted = 40;
this.boss.getJobsCompleted(this.numJobsCompleted);
end
end
end
は、彼/彼女が通知するために、どのボスを知っているように、Employeeクラスへの参照を渡すことです。
すなわち
in Boss
this.myEmployee = Employee(this)