Моему коллеге нравится связывать ООП с тем, как все работает на самом деле, но немного слишком, и иногда я неуклюже верю.
Экземпляр 1:
Он всегда предлагает не использовать статические переменные для отслеживания всех экземпляров, но создать другой класс, а затем создать массив в этом классе, чтобы делать все то, что можно было сделать, используя только одну статическуюпеременная (конечно, с соответствующими привилегиями).Итак, скажем, у меня есть класс с именем «Card», по его словам, мне не следует использовать статическую переменную для отслеживания карт, но есть другой класс с именем «CardsList» и создание массива внутри этого класса «CardsList» для отслеживания карт..
//in the main class
private CardsList Cards = new CardsList();
//in CardsList class
static List<card> CardsList = new ArrayList<>();
против
//in the cards class
static List<card> CardsList = new ArrayList<>();
Экземпляр 2:
Если бы мы создали простую симуляцию фондового рынка.
Я бы предпочел создать класс, называемый market и storeотложенные ордера этого рынка в массиве этого класса.
С другой стороны, он хочет, чтобы я создал класс с именем PendingOrders, не содержащий ничего, кроме массива, и ничего не делающий, кроме того, что массив делал на рынке классов.Примерно так:
//in the market class
private PendingOrders pendingOrders = new PendingOrders();
//in the PendingOrders class
private List<order> pendingOrders = new ArrayList<order> ();
против
//in the market class
private List<order> pendingOrders = new ArrayList<order> ();
Ответы, которые он дает для обоснования своего подхода, совершенно бесполезны, и я думаю, что он слепо следует тому, что ему сказал кто-то другой.
Может кто-нибудь помочь мне сравнить два подхода?И когда один может быть более выгодным по сравнению с другим?