2016-08-03 2 views
-3

В ближайшее время я собираюсь провести собеседование по кодированию, которое должно проверить мои концепции объектно-ориентированного программирования. Я знаю о программировании OO очень подробно, моя единственная проблема заключается в том, что они спросили, что во время интервью я покажу, как сделать модель OO на доске и дать мне куб Rubix или Guitar в качестве прошлых примеров того, что другие моделировали для интервью.Кодирование Интервью: что моделировать для демонстрации OO?

Моя забота делает что-то слишком упрощенное, как класс Person, и не передает все понятия, которые я знаю. Но я также не хочу выбирать что-то такое абстрактное, как куб Rubix, который мой интервьюер может ненавидеть эту идею и подвергать сомнению ее практичность или расширяемость. Я также не хочу давать ему то, что он видел раньше.

Моя первая мысль заключалась в том, чтобы что-то сделать с рыбалкой, потому что это пример реального мира, и мне это нравится, но мне интересно, слишком ли это понятие. Как это как быстрый пример:

abstract class Fisherman { 
    abstract protected function fish(); 
} 

class Angler extends Fisherman { 
    protected function fish() { 
    $this->cast(); 
    } 
    private function cast() { 
    echo "Casting Rod"; 
    } 
} 

class CrabFisherman extends Fisherman { 
    protected function fish() { 
    $this->place(); 
    } 
    private function place() { 
    echo "Placing Crab Pot"; 
    } 
} 

Так что мой вопрос, что я должен моделировать в ориентированном образом объект для интервью кодирования для того, чтобы наилучшим образом показать понимание концепций ОО? Можно ли сделать простой класс человека, например, с рыбаком, или я должен нажать на конверт? Первое реальное инженерное интервью, поэтому я не совсем уверен, что взять с собой на стол.

+2

Почему бы не создать класс интервью? Теперь вы контролируете интервью :-) –

+0

thats отличная идея! это весело, и я уверен, что они не видели, что –

ответ

2

Ваш пример не очень хороший, потому что это просто прямое наследование. Примерами, которые они приводили, являются системы с несколькими объектами, связанными по составу. У гитары есть тело, струны и настраивающие штифты. Тело содержит как струны, так и настраивающие штифты. Можно настроить пеленки настройки, чтобы изменить ноту, которую играет строка. Плюс вы могли бы дать телу разные виды струн. А электрогитара добавляет пикапы, регуляторы громкости и т. Д. Кубик rubics аналогично имеет ядро, стороны и кубы.

Если вам нравится рыбалка, возможно, лучше было бы моделировать рыбак и удочку с снастями. Штанга, катушка, линия, вес, поплавок, крюк и приманка могут быть изменены без изменений основного акта промысла. Оборудованный рыбак может быть развернут в разных местах рыболовства, и успех будет зависеть от конфигурации.

+0

спасибо за то, что нашли время подумать и ответить на мой вопрос, это отличная идея использовать рыболовные снасти в коллекции, я даже думал, что он может быть собран под классом TackleBox –

Смежные вопросы