Принцип инверсии зависимостей в JAVA
Один из самых основных принципов американского законодательства — «все равны». Нам неважно, посредством какой борьбы или кровопролития это было достигнуто. Мы понимаем это только как метод JAVA, который определяется следующим образом:
public Final boolean: все равны(человек 1, человек 2){
вернуть истину;
}
Хотя законы каждого штата могут быть разными, например, Основной закон Соединенных Штатов, Нью-Йорк можно назвать Основным законом Нью-Йорка. Они должны иметь такое соотношение: Основной закон Нью-Йорка наследует Основной закон Соединенных Штатов. Сообщает, но не позволяет переписать этот метод.
Когда дело доходит до принудительного исполнения в Нью-Йорке, используются следующие методы:
Основной закон США = новый Основной закон Нью-Йорка
Вызов метода «все равны» в любом месте вернет «истину», что означает, что принцип равенства всех не может быть изменен нигде. Это макрорешение, определяющее микро, и оно не изменится между мужчинами и женщинами из-за New. Йорк. Женское неравенство.
Например, в определенной стране также есть основной закон и метод равенства для всех. Определение должно быть следующим:
public boolean все равны(человек 1, человек 2){
вернуть истину;
}
Например, в определенном месте в определенной стране также существует основной закон. Основной закон определенного места также унаследован от основного закона определенной страны. Однако, поскольку метод «все равны», не является окончательным. его можно переписать. При реализации в определенном месте это может быть:
Основной закон определенной страны = новый Основной закон определенного места
или
Основной закон определенного места = новый Основной закон определенного места
Возможно, когда Основной закон определенного места унаследовал Основной закон определенной страны, метод «все равны» был переписан и изменен на:
public boolean все равны(человек 1, человек 2){
if(человек 1==человек из определенного места&& человек 2==человек из определенного места){
if(человек 1 и человек 2 имеют одинаковые атрибуты){
if(человек 1 и человек 2 одинаковы, за исключением того, что это не один и тот же человек){
если(никого больше не произойдет){
вернуть истину;
}еще{
вернуть ложь;
}
}еще{
вернуть ложь;
}
}еще{
вернуть ложь;
}
}еще{
вернуть ложь;
}
}
Поговорим о принципе инверсии зависимостей по «JAVA и шаблонам»:
Абстрактный уровень содержит бизнес-логику прикладной системы и стратегические решения на макроуровне, которые важны для всей системы и являются отражением неизбежности, тогда как конкретный уровень содержит некоторые незначительные алгоритмы и логику, связанные с реализацией, а также тактические действия; решение предполагает значительный шанс. Конкретные уровни кода будут часто меняться, и ошибок избежать невозможно. Уровень абстракции зависит от уровня конкретности. Изменения алгоритма с использованием деталей на конкретном уровне немедленно влияют на макроскопическую бизнес-логику на уровне абстракции, заставляя микроскопическое определять макроскопическое, тактику определять стратегию и шанс определять необходимость. Это смешно.
Прочитав это, вы поймете, почему в будущем вам стоит использовать его при написании кода чаще:
абстрактная логика = новая конкретная логика
Используйте как можно меньше:
конкретная логика = новая конкретная логика
В настоящее время пропагандируется интерфейсно-ориентированное программирование. Вот еще один практический пример интерфейсно-ориентированного программирования:
Обычно вам следует использовать List чаще. Сам List — это интерфейс, унаследованный от Collection. Вы можете использовать его следующим образом:
Список списка = новый вектор();
Объявленный таким образом List на самом деле является типом Vector, поскольку Vector является его подклассом. Согласно принципу подстановки Лискова, подклассы могут быть приняты везде, где может быть принят родительский класс. В это время список синхронизируется, и, конечно, на него повлияет определенная производительность. Если вы перейдете на среду, которая в будущем не потребует синхронизации, вам нужно всего лишь изменить приведенный выше код примерно на этот:
Список списка = новый ArrayList();
Никакой другой код изменять не нужно. Фактическим типом списка на данный момент является ArrayList.
С этого момента мы можем понять, почему дизайнеры ценят интерфейсно-ориентированное программирование, потому что после того, как они предоставляют интерфейс, разработчики реализуют определенные классы на основе интерфейса, и нет необходимости беспокоиться о том, что разработчики разрушат целостность оригинала. программе, и дизайнеры никогда не будут заботиться только о методах интерфейса, не беспокоясь о вспомогательных методах в конкретном классе. Но это требует дополнительных затрат, таких как добавление классов JAVA. Если абстрактные классы могут принести меньшую эффективность, лучше использовать конкретную связь, например, классы инструментов.