Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2014, 17:42   #1
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию Протокол класса Graph

Всем доброго времени суток.
У меня вопрос по архитектуре класса, представляющего собой граф.
Код:
public class Graph
{
    public Graph(int vertexesAmount);
    public Graph();
    @Override
    public String toString();
    public boolean isConnected();
    public void addEdge(Vertex startVertex, Vertex endVertex);
    public void addNewVertex(Vertex baseVertex);
    public LinkedList<Vertex> getAdjacentVertexes(Vertex v);
    public AdjacencyMatrix toAdjacencyMatrix();
    public final int getVAmount();
    public final int getEAmount();
    public static class IO
    {
         public void inputFromConsole();
         public void inputFromFile(File inputFile);
         public void outputToConsole();
         public void outputToFile(File outputFile);
    }
    private ArrayList<LinkedList<Vertex>> adjVertexes;
    private int vAmount;
    private int eAmount;
}
Клиентский код
Код:
Graph graph = Graph.IO.inputFromFile(new File(path));
graph.toAdjacencyMatrix.outputToConsole();
...
...
...
Вопрос следующий: а стоит ли использовать вложенный класс? Можно ли интерфейс класса IO отнести к интерфейсу класса Graph? Я создавал его исходя из соображений, что непосредственно класс Graph должен отвечать за обработку и создание объектов-графов, а ввод/вывод этого графа нужно возложить на другой класс. Либо интерфейс, обеспечивающий ввод/вывод следует возложить непосредственно на клиента (клиентский код)?

P.S - хотя, если подумать лучше, то ввод/вывод логичнеее отнести к классу Graph, т.е обойтись можно и без Graph.IO. Т.е я думал, что будет полезно разделить логику создания графа от его инициализации из файла, например.

Последний раз редактировалось Igor95; 20.02.2014 в 17:55.
Igor95 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не понятная проблема, адрес переменной класса у 2 объектов класса одинаков Soeth Общие вопросы C/C++ 8 06.11.2013 05:10
Как создать метод класса, возвращающий объекты (поля класса) разных типов frosich Общие вопросы Delphi 3 01.03.2013 19:29
Функция базового класса вызывает критическую ошибку при вызове для класса-потомка Archet Общие вопросы C/C++ 7 17.01.2012 20:17
Конструктор класса не хочет принимать в качестве параметра адрес объекта другого класса Jugger Помощь студентам 3 05.01.2012 04:10
Определение типа класса по переменной на объект этого класса при компиляции phomm Общие вопросы Delphi 24 08.04.2011 14:11