Настройка кроссплатформенного проекта C ++ в Eclipse с кроссплатформенными библиотеками

Я работаю над кроссплатформенным проектом C ++ с 8 другими людьми, который использует следующие библиотеки:

  • OpenCV Library
  • Библиотека Boost C ++

Предполагается, что проект будет кроссплатформенным, поэтому все пользователи согласились не использовать код, зависящий от платформы, и, чтобы все было как можно проще, все пользователи будут использовать Eclipse в качестве своей IDE. Однако некоторые будут использовать Eclipse для Windows, в то время как другие будут использовать Eclipse для Linux.

Поскольку проект будет размещен на SVN, мы хотели бы избежать конфликтов с различными файлами конфигурации (такими как файлы make, файлы проекта eclipse и т. Д.) .), которые являются общими. Мы также хотели бы поделиться как можно большим количеством файлов конфигурации через SVN, чтобы сохранить конфигурацию как можно более простой.

Давайте ' Создайте ассоциацию, если ничего не найдено, чтобы избежать ошибок nil У меня есть приложение, в котором мои пользователи могут иметь набор настроек. Оба хранятся как модели ActiveRecord следующим образом: class User

У меня есть приложение, в котором мои пользователи могут иметь набор настроек. Обе они хранятся как модели ActiveRecord следующим образом:

class User < AR::Base
   has_one :preference_set
end

class PreferenceSet < AR::Base
   belongs_to :user
end

Теперь я могу получить доступ к предпочтениям пользователя:

@u = User.first
@u.preference_set => #<PreferenceSet...>
@u.preference_set.play_sounds => true

Но это не удается, если набор предпочтений еще не создан, поскольку @ u.preference_set будет возвращать nil, а я буду вызывать play_sounds на nil .

Я хочу заархивировать, что User.preference_set всегда возвращает экземпляр PreferenceSet. Я пробовал определить его так:

class User < ..
   has_one :preference_set

   def preference_set
     preference_set || build_preference_set
   end
end

Это вызывает «Уровень стека слишком глубокий» , поскольку он вызывает себя рекурсивно.

Мой вопрос:

Как я могу убедитесь, что @ user.preference_set возвращает либо соответствующую запись набора настроек, либо, если ее нет, } Затем мы создали объект этого класса (или какой-то другой фреймворк создал экземпляр этого ...

Допустим, у нас есть класс:

public class MyClass {
    @Autowired private AnotherBean anotherBean;
}

Затем мы создали объект этого класса (или какой-то другой фреймворк имеет создал экземпляр этого класса).

MyClass obj = new MyClass();

Можно ли по-прежнему внедрять зависимости? Примерно:

applicationContext.injectDependencies(obj);

(я думаю, что в Google Guice есть что-то вроде этого)

119
задан Igor Mukhin 28 September 2010 в 14:04
поделиться