Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

NSliM

  • 0
    вклад
  • 7
    вопросов
  • 2
    ответа
  • 50%
    решений
Комментарии
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Dependency Injection и Spring4d?

    NSliM @nslim13 Автор вопроса
    Собственно моя проблема в том, что все примеры и лекции рассматривают ситуацию разрешения зависимостей на первом уровне. Типа "У нас есть класс А, у которого в зависимостях интерфейс В с вот такой-то реализацией. Регистрируем в контейнере оба класса, и контейнер, при создании экземпляра класса А сам создаст экземпляр класса В". Максимум, что объясняется, так это то, как быть если у В несколько реализаций.
    А как быть, если у В есть зависимость от С, а у С несколько реализаций. И у него тоже есть зависимости. Как разрешать зависимости на более глубоких уровнях? В Pure DI это выливается в неиспользуемые классом зависимости, которые он просто пробрасывает своим зависимостям. Но принять он их обязан.
    Написано 17 нояб. 2022
  • Dependency Injection и Spring4d?

    NSliM @nslim13 Автор вопроса
    На самом деле, насколько я понимаю, мы таким образом
    aContainer.RegisterFactory<TCoffeeMakerFactory>;
    просто сообщаем контейнеру сигнатуру конструктора. А фабрику он формирует сам.
    Написано 07 нояб. 2022
  • Android пишет "Приложение не установлено". Как побороть?

    NSliM @nslim13 Автор вопроса
    OCTAGRAM, Вы были правы. Приложение действительно не устанавливалось из-за того, что не было подписано. Я обратил внимание, что в домашней системе Delphi испытывает проблемы при компиляции проектов, сохраненных в папке "Документы". Тогда как на виртуалке с этим всё было ок. И решение пришло само - недопустимый для Delphi символ в имени пользователя и, как следствие, в пути к debug файлу ключа. Имя пользователя содержало символ апостроф, а на вируалке это просто "user". Delphi даже сама говорила об этом, просто я игнорировал сообщение. "А чё, оно же не красное, значит не критично, да и букаф много, в экран не влазят" думал я. Исправил имя пользователя и имя домашней директории (уже предвкушаю последствия этого решения :)) ) и чудо произошло! Приложение скомпилировалось и даже само на подключенный телефон поставилось, хотя раньше не хотело. Так что, дети, никогда... Слышиите? НИКОГДА не используйте закорючки в имени пользователя Windows!
    Спасибо за помощь :)
    Написано 14 окт. 2022
  • Android пишет "Приложение не установлено". Как побороть?

    NSliM @nslim13 Автор вопроса
    Ключи разработки (development), которые есть по умолчанию в среде. Создал свой ключ для подпись. Не помогло.
    Написано 14 окт. 2022
  • Какой паттерн проектирования применяют для построения событийной системы?

    NSliM @nslim13 Автор вопроса
    Евгений Шатунов, проблема может быть в невнимательности. Мне кажется, что если количество событий станет очень велико, то может получится так, обработчик первого события вызовет второе событие, второй обработчик вызовет третье, а третий обработчик вызовет первое событие, и замкнет цепочку в бесконечный цикл. Такое возможно?
    Написано более года назад
  • Как правильно импортировать модули?

    NSliM @nslim13 Автор вопроса
    Константин Цветков, да, согласен. Перегнул немного ) Но я это исключительно для наглядности, чесслово.
    Написано более года назад
  • Как правильно импортировать модули?

    NSliM @nslim13 Автор вопроса
    Hemul GM, Константин Цветков, большое спасибо за помощь. Теперь я понял свою ошибку.
    Написано более года назад
  • Как правильно импортировать модули?

    NSliM @nslim13 Автор вопроса
    Константин Цветков, мне почему-то казалось, что механизм модулей придумали чтоб разделять части кода, а не объединять их...
    Очень не хотелось бы объединять в один модуль, т.к. имел опыт работы с подобными портянками. Когда объем кода растет, очень тяжело поддерживать потом. Во всяком случае мне...
    Написано более года назад
  • Как правильно импортировать модули?

    NSliM @nslim13 Автор вопроса
    Константин Цветков, я говорю не о наследовании. Пример с приложением абсолютно абстрактный и иерархия классов vcl совершенно ни при чем.
    Написано более года назад
  • Как правильно импортировать модули?

    NSliM @nslim13 Автор вопроса
    Например для освобождения паняти: в случае удаления родителя он удалит своих child'ов. В противном случае, если объект родитель даже не знает что он родитель, я не понимаю назначения подобной организации объектов (

    UPD:
    Или, например, такой случай, когда родитель это приложение и его задача создавать/удалять/управлять объектами child'ами, а так же хранить общую для всех информацию о, например, состояниях. А child'ы это компоненты приложения и должны содержать ссылку на объект приложения для доступа к общей информации.
    Написано более года назад
  • Как правильно импортировать модули?

    NSliM @nslim13 Автор вопроса
    Похоже я неправильно выразился, сейчас попробую исправиться.
    Класс TParent содержит поле child:TChild, а класс TChild содержит поле paren:^TParent. В модуле parent необходимо импортировать модуль child, а в модуле child необходимо импортировать модуль parent, чтоб оба класса могли создать свои поля. Но так не работает, появляется вышеописанная ошибка. Как быть в такой ситуации?
    Написано более года назад
  • Какой паттерн проектирования применяют для построения событийной системы?

    NSliM @nslim13 Автор вопроса
    Максим Федоров, Надеясь на то, что эта цепочка однажды прервется?
    Написано более года назад
  • Как правильно перенести логику объекта на Vue без data, methods и computed?

    NSliM @nslim13 Автор вопроса
    Rustam Azizov, в общем решил задачу так (опишу код условно):
    1. В основном коде приложения в data завел поле self, которое содержит ссылку на this. (т.е. просто self: this,)
    2. Создал компонент item, и передаю в него self и имя нужного item'а:
    <item :app="self" name="item1" />   
    <item :app="self" name="item2" />

    3. Описания item'ов вынес в отдельный .js файл:
    export default {
    	item1: {
    		name: 'Item_1',
    		is_availible: function (app) {
    			return app.var1>2 || app.var2=1;
    		},
    		do_action:function (app) {
    			app.doSomeAction();
    		}			
    	},
    
    	item2: {
    		name: 'Item_2',
    		is_availible: function (app) {
    			return app.var3 && (app.var4||app.var5);
    		},
    		do_action:function (app) {
    			app.doAnotherAction();
    		}			
    	},
    }

    4. В коде компонента импортирую объект с описанием item'ов и назначаю поля в data:
    import data from '@/items.js'
    export default {
    	props: {
    		name: String,
    		app: Object
    	},
    	data: function () {
    		return {
    			item_name: data[this.name].name,
    			isavailible: data[this.name].is_availible,
    			doaction: data[this.name].do_action,
    		}
    	},
    }

    5. Определяю is_availible как computed-свойство, а do_action как method:
    computed: {
    	is_availible () {
    		return this.isavailible(this.app);
    	}
    },
    methods: {
    	do_action () {
    		this.doaction(this.app);
    	}
    }

    6. В template прописываю внешний вид и действие:
    <template>
    	<p v-if="is_availible" @click="do_action()">{{item_name}}</p>
    </template>

    В дальнейшем просто добавляю описание нового item'а в .js файл, и добавляю очередной тэг item.
    Написано более трёх лет назад
  • Как правильно перенести логику объекта на Vue без data, methods и computed?

    NSliM @nslim13 Автор вопроса
    Rustam Azizov,
    По-сути такая функция — это большой свитч

    Я примерно об этом тоже думал:
    вместо is_availible указывать объект вроде
    {
    service_limit: 60, // ветка свитч сравнивающая значение с датой последнего обслуживания (два месяца)
    materials: ['material1','material2'] // ветка проверяющая наличие расходников
    }

    Но проблемка была в том, какую логическую операцию применять, И или ИЛИ. И как быть с их различными комбинациями. Например вариант выше сравнивает по &&, т.к. должно подойти время обслуживания и должно быть наличие ТМЦ. А во тут
    {
    service_limit: 150, // ветка свитч сравнивающая значение с датой последнего обслуживания
    motor_hour_limit: 200 // ветка сравнивающая наработку мотор часов
    }

    и тут сравнение идет (пора по сроку) || (пора по наработке часов)
    Написано более трёх лет назад
  • Как правильно перенести логику объекта на Vue без data, methods и computed?

    NSliM @nslim13 Автор вопроса
    Rustam Azizov,
    вопрос, а чем отличаются ваши объекты, они имеют идентификаторы? Является ли идентификатором поле name?

    Да. Поле name уникально для каждого объекта
    Написано более трёх лет назад
  • Как правильно перенести логику объекта на Vue без data, methods и computed?

    NSliM @nslim13 Автор вопроса
    Rustam Azizov, Благодарю за решение. Теперь снова есть над чем подумать
    Написано более трёх лет назад
  • Как правильно перенести логику объекта на Vue без data, methods и computed?

    NSliM @nslim13 Автор вопроса
    Rustam Azizov, Да, я так пробовал )) Объект замыкается в себе, т.к. this ссылается на сам объект. А кроме array есть и другие поля и объекты приложения
    Написано более трёх лет назад
  • Как правильно перенести логику объекта на Vue без data, methods и computed?

    NSliM @nslim13 Автор вопроса
    Rustam Azizov, А что? Вполне себе решение! Зачем-то ведь сделали доступ к элементам DOM ))
    Написано более трёх лет назад
  • Как правильно перенести логику объекта на Vue без data, methods и computed?

    NSliM @nslim13 Автор вопроса
    Rustam Azizov,
    import Button from 'Button.vue'
    import Vue from 'vue'
    var ComponentClass = Vue.extend(Button)
    var instance = new ComponentClass()
    instance.$mount() // pass nothing
    this.$refs.container.appendChild(instance.$el)

    Я так понял, что это примерно оно?
    Написано более трёх лет назад
  • Как правильно перенести логику объекта на Vue без data, methods и computed?

    NSliM @nslim13 Автор вопроса
    Rustam Azizov, тогда мне придется каждый компонент вставлять на страницу вручную?
    Написано более трёх лет назад
  • 1
  • 2
  • Следующие →
Самые активные сегодня
  • vabka
    Василий Банников
    • 10 ответов
    • 0 вопросов
  • rPman
    • 7 ответов
    • 0 вопросов
  • CityCat4
    CityCat4
    • 6 ответов
    • 0 вопросов
  • mayton2019
    • 5 ответов
    • 0 вопросов
  • borisserver
    Субару Помнеш
    • 5 ответов
    • 0 вопросов
  • alexalexes
    • 4 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации