Вы спрашиваете о книгах, связанных с теорией этого. Теория является одной из отделения логики представления от бизнес-логики или разделения интересов. Это происходит под многими именами, такими как модель / вид / контроллер, модель / вид / презентатор и многие другие, и существует множество книг на эту тему.
Если вы разрабатываете приложение таким образом, уровень представления (т. Е. Пользовательский интерфейс) представляет собой отдельный объект, который можно заменить другим. Таким образом, вы можете иметь графический интерфейс пользователя, а также текстовый. Можно утверждать, что в идеальном мире все приложения будут работать таким образом, с настольным пользовательским интерфейсом, веб-интерфейсом, интерфейсом командной строки и так далее.
Однако все это обходится дорого. Разработать приложения таким способом сложно, и из-за слабой связи между приложением и пользовательским интерфейсом могут быть потери производительности. Чтобы еще больше усугубить сложность, по сути сложно обеспечить богатый интерфейс командной строки для сложного приложения. Как бы вы пошли о создании ввода командной строки для Adobe Photoshop или Microsoft Excel, например?
Таким образом, хотя это возможно в теоретическом смысле, с практической точки зрения это становится все труднее по мере повышения сложности пользовательского интерфейса. Однако есть много приложений, которые могут это сделать. Например, многие системы контроля версий, такие как BitKeeper, AccuRev и другие, имеют как командную строку, так и графические интерфейсы.
Так что, да, возможно, что большинство приложений могли бы реализовывать как графический интерфейс, так и интерфейс командной строки, и это правда, что некоторые из них делают, не разумно ожидать, что все приложения будут или даже может.