Один из способов упростить это ... совершать звонки, даже если они вам не нужны, но обусловить реализацию:
printBorder(N, E, S, W){
square.printBorder(n, 0,0,0,10);
square.printBorder(e, 0,10,10,10);
square.printBorder(s, 10,0,10,10);
square.printBorder(w, 0,0,10,0);
}
Затем в Square
(или как угодно):
printBorder(condition, top, left, bottom, right) {
if (!condition) {
return;
}
printBorder(top, left, bottom, right);
}
Аналогичной альтернативой будет сохранение условного printBorder
с исходной функцией:
printBorder(N, E, S, W){
printBorder(n, 0,0,0,10);
printBorder(e, 0,10,10,10);
printBorder(s, 10,0,10,10);
printBorder(w, 0,0,10,0);
}
printBorder(condition, top, left, bottom, right) {
if (!condition) {
return;
}
square.printBorder(top, left, bottom, right);
}