Я сталкиваюсь с написанием достаточно крупной программы для исследовательского проекта, которая, вероятно, будет использоваться только мной или, возможно, небольшим количеством людей, которые могут взять ее на себя в будущем.Дело в том, что это не коммерческое приложение, и оно не будет общедоступным.И мой вопрос - есть ли в таком случае действительно хорошие аргументы за определение всех моих классов, частных, а не публичных?Весь код предназначен для планировщика последовательности заданий.Так, например, у меня есть базовый класс заданий, который выглядит следующим образом:
class Job {
private: // should it be?
int Jobid;
int stack_row ; // horizontal positon in a stack
int row_height ; // position in a column of containers
float ArrivalTime;
float FinishTime;
float GantryTime;
float WaitingTime; // Job Start - Job Arrival
float ReachableTime; // later time of Vehicle or YC arrival to job location
float DueDate;
float Tardiness; // max{0, Ci-di} Ci, Completion time = Finish time; di, DueDate
float SlackTime;
int type; // 1, Loading; 2, Unloading
} ;
Затем есть класс для последовательности заданий, данных моделирования, задействованных машин и ряда других вещей.Дело в том, что у меня много классов и даже больше компонентов для них.Все они будут использоваться либо мной, либо небольшим количеством других людей.Я мог бы определить все классы private с функциями set_whatever()
, get_whatever()
для всех приватных компонентов, которые нужно установить или прочитать, но есть ли в этом смысл?А - это занимает время.Б - это не очень читаемый код, когда я пишу
job_schedule.job_list[i].set_finish_time( job_schedule.job_list[i].get_ArrivaTime() + job_schedule.job_list[i].get_ProcessingTime() ) ;
вместо
job_schedule.job_list[i] = job_schedule.job_list[i].Finish_Time + job_schedule.job_list[i].Processing_Time ;
Так что мой вопрос - есть ли действительно веская причина, по которой я бы придерживалсячастные уроки в этом случае?Или, может быть, есть более элегантный способ сделать
job_schedule.job_list[i].set_finish_time( job_schedule.job_list[i].get_ArrivaTime() + job_schedule.job_list[i].get_ProcessingTime() ) ;
, оставаясь при этом личным?