Неожиданно оригинальный подход я увидел тут в описании одной вакансии.
Дабы не сочли рекламой — всю инфу о работодателе выпилил.
Но за описание вакансии средствами ООП — однозначный респект!
public class JediJob extends GameDevJob implements IRemoteJob {
...
Полный исходник не влез до ката.
public class JediJob extends GameDevJob implements IRemoteJob {
public var company:ICompany = new XXXXXGames();
public var url:String = "http://xxxxxgames.com/xxxxxx.html";
public var email:String = "xxxxx@xxxxxgames.com";
public function apply():IGame {
var currentGame:IGame = new GameNameXXXX();
currentGame.mmorgp = true;
currentGame.engine3d = Engine.ALTERNATIVA_3D;
currentGame.protocols = ["xml", "json", "amf3"];
currentGame.platforms = ["facebook", "kongregate", "ownSite"];
return currentGame;
}
public function isAvailable(skills:Skills):Boolean {
var as3Skill:ISkill = skills.getSkill("as3");
return as3Skill.oop && as3Skill.years >= 3
&& as3Skill.level >= DevLevel.MIDDLE;
}
public function getSalary():uint {
return company.getInterview().result + company.getBonus();
}
}
Автор: soulburner