OOP: How to let a bunch of methods behave differently depending in the type of input?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Let's imagine we have a Class called OOP_Base and lots of subclasses like "OOP_Mult5" that implement the "Apply" Method defined "abstract" in the OOP_Base class.
I like to convert accidental char inputs for all those classes to double. I don't want to implement a isa(in,'char') in all hundred methods "OOP_Mult5" and so on.
Is it possible to put the "isa()"-query and a str2num() if the input is char in the OOP_Base for all subclasses?
% OOP_Base:
classdef OOP_Base
methods (Abstract = true)
result = Apply(in)
end
end
classdef OOP_Mult5 < OOP_Base
methods (Static = true)
function result = Apply(in)
result = 5*in;
end
end
end
P.S.: This is just an example to illustrate my problem. In reality I have to deal with lots of filters that should work with a special "Image"-class but also with simple R,G,B vectors.
Thank you very much in advance for your help,
Jan
0 Kommentare
Akzeptierte Antwort
Matt J
am 9 Okt. 2012
Bearbeitet: Matt J
am 9 Okt. 2012
Instead of making Apply() abstract, make it call abstract functions:
classdef OOP_Base
methods result=Apply(in)
if ischar(in), in=str2num(in); end
result=ApplyMain(in);
end
methods (Abstract = true)
result = ApplyMain(in)
end
end
classdef OOP_Mult5 < OOP_Base
methods (Static = true)
function result = ApplyMain(in)
result = 5*in;
end
end
end
0 Kommentare
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu Whos finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!