Quote (Ghost_in_the_shell)
Раньше даже не думал ни о чем перед тем как начать создавать программу, просто открывал IDE и кодил.
Для мелких проектов (на пару дней) - можно и так.
Для более долгосрочных и сложных проектов - составляй документ-описание для себя, пиши комментарии в коде, чтобы ничего не забыть.
Если пишешь на заказ - должны дать собственно описание - просто пишешь по нему, что требуется, плюс комментарии в коде и справку к программе.
Тут, знаешь ли, единого стандарта нет, есть только рекомендации и всё такое, а также внутренние правила компании (если разработку ведёт компания).
Quote (Ghost_in_the_shell)
Надо ли шаблоны проектирования использовать?
Нужно 10 программ с одной структурой, но разными целями? Поможет шаблон этой конкретной структуры.
Quote (Ghost_in_the_shell)
Как и что пишут в абстрактных классах и интерфейсах и надо ли их использовать вообще?
Как - с помощью клавиатуры. А что тут ещё можно ответить?.. Синтаксис у всех ЯП разный, если ты про непосредственное описание.
Абстрактная функция (или класс) вообще не существует, то есть есть только её описание, но самой функции нет. Потомки этого класса должны описать эту функцию (у каждого потомка будет своё описание), но вызвать её непосредственно из экземпляра родителя нельзя, т.к. её в нём просто нет. Нужно ли использовать - нужно, если требуют обстоятельства... Например, пишешь класс, который потом сможет использовать любой другой программист. При этом предполагаешь, что у потомков этого класса обязательно должна быть функция такая-то, но в твоём классе её нет, так как нет нужных данных (которые появятся у потомков). Вот эту функцию и делаешь абстрактной. Вообще, мог бы сам прочитать в интернете, например - http://ru.wikipedia.org/wiki/Абстрактный_класс...