BashSoft Въпроси
Привет,
Докато правя лабовете, често ми изникват различни въпроси. Ще се опитам да ги обобщя тук. Ще се раздвам на вашите коментари и други въпроси(дори и вече да сте си отговорили на тях) / идеи по темата.
1. Множествено число в имената на пакетите: bg.softuni.models, bg.softuni.model.exceptions, bg.softuni.contracts - тук последната дума е в множествено число, а на много места ми е правило впечатление че е в единствено (най - често model) - Има ли някаква конвенция за това или е въпрос на избор?
2. bg.softuni.contracts - това често съм го виждал като bg.softuni.interface - Предполагам са синоними и е въпрос на избор, но все пак да попитам, така ли е ?
3. Тъй като са се събрали доста интерфейси в пакета contracts, няма ли да е по - добре да се разделят в подпакети, например contracts.repository или repository.contacts - И тук имам въпрос, ако се направи кое от двете е по - добро като име и защо?
4. Пакета bg.softuni.staticData - Според https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html би трябвало иментата на пакетите да са с малки букви?
5. Абстрактния клас Command, при всички негови наследници има валидация, която ако не мине се хвърля един и същи exception и мисля, че може тази валидация да се изкара в абстрактния клас:
protected abstract boolean validate();
protected abstract void doExecute() throws Exception;
@Override
public void execute() throws Exception {
if(!validate()) {
throw new InvalidCommandException(input);
}
doExecute();
};
6. Интерфейсите Downloader и AsynchDownloader, защо AsynchDownloader наследява Downloader и който го имплементира да трябва да имплементира и двата метода ? Струва ми се малко обвързващо с конкретната задача, защо да не е един интерфейс Downloader с 2 имплементации?
7. SimpleOrderedBag и SimpleSortedList - List и Bag не са ли различни структури? Защо интерфейса да не се казва SimpleOrderedCollection, a тези две имена да са имена на класове, които го наследяват?
8. "Adding functionality to the StudentsRepository" - Не би ли трябвало двата нови метода да връщат интерфейса, SimpleOrderedBag в случая?
9. createStudentsComparator и createCourseComparator - каква е разликата в двата метода? Не трябва ли да е един метод createComparator, който да се ползва и за двете колекции?
За да не отварям нова тема , да попитам относно лаба за Iterators && Comparators.
Kaто бонус е дадено да имплементираме някой сортиращ алгоритъм .
Грешно ли е да сменя някой параметри , тъй като компаратор не ми трябва в случая , a да приемам само като String sortType (ascending , descending) ?
Здравей, няма проблем да го променяш както желаеш. Особено след края на курса е силно препоръчително за всички, да го extend-ват, като си го качат в GitHub, тъй като това е един малък проект, който всеки може да ползва в потфолиото си.