Хорошая подобная STL библиотека для [закрытого] C

Правильно ли это делается?

blockquote>

Помимо выполнения бизнес-логики неэффективный способ в методе управляемых компонентов боба и использование слишком широкая область управления, она выглядит нормально. Если вы переместите вызов службы из метода getter в метод @PostConstruct и используйте @RequestScoped или @ViewScoped вместо @SessionScoped, он будет выглядеть лучше.

См. Также:


Правильно ли моя терминология?

blockquote>

Все в порядке. Пока вы согласны с этим, и код читается разумным образом. Только ваш способ именования классов и переменных несколько неудобен (нелогично и / или дублирование). Например, я лично использовал бы users вместо userList и использовал var="user" вместо var="u" и использовал id и name вместо userId и userName. Кроме того, «UserListService» звучит так, что он может обрабатывать только списки пользователей, а не пользователей в целом. Я бы предпочел использовать «UserService», чтобы вы могли также использовать его для создания, обновления и удаления пользователей.

См. Также:


«Служба» больше похожа на DAO?

blockquote>

It не является точно DAO. В принципе, JPA является настоящим DAO здесь. Раньше, когда JPA не существовало, все домашние интерфейсы DAO, так что методы обслуживания могут продолжать использовать их, даже когда базовая реализация («простой старый» JDBC или «старый добрый» Hibernate и т. Д.) Изменяется. Реальная задача метода сервиса - прозрачное управление транзакциями. Это не является обязанностью DAO.

См. Также:


И контроллер чувствует, что выполняет некоторую работу службы.

blockquote>

Я могу представить, что он делает это в этой относительно простой установке. Однако контроллер фактически является частью интерфейса, а не бэкэнд. Служба является частью бэкэнд, которая должна быть сконструирована таким образом, что она может использоваться повторно во всех разных интерфейсах, таких как JSF, JAX-RS, «простой» JSP + Servlet, даже Swing и т. Д. Кроме того, контроллер, специфичный для интерфейса (например, также называемый «поддерживающим bean-компонентом» или «презентатором») позволяет вам иметь дело с конкретным интерфейсом с успехом и / или исключительными результатами, например, в случае JSF, отображающем сообщение лиц в случае исключения, вызванного службой.

См. также:


В общем, правильный подход будет следующим:


    #{user.id}
    #{user.name}

@Named
@RequestScoped // Use @ViewScoped once you bring in ajax (e.g. CRUD)
public class UserBacking {

    private List users;

    @EJB
    private UserService userService;

    @PostConstruct
    public void init() {
        users = userService.listAll();
    }

    public List getUsers() {
        return users;
    }

}
@Stateless
public class UserService {

    @PersistenceContext
    private EntityManager em;

    public List listAll() {
        return em.createQuery("SELECT u FROM User u", User.class).getResultList();
    }

}

Вы можете найти здесь настоящий мир здесь используется каноническая практика Java EE / JSF / CDI / EJB / JPA: Java EE kickoff app .

См. также:

46
задан Community 10 September 2008 в 18:13
поделиться

5 ответов

библиотека Glib , пользовавшаяся на проекте Gnome, может также быть некоторым использованием. Кроме того, это вполне прилично тестируется.

работы разработчика IBM имеет хорошее учебное руководство на его использовании: Управляют данными C с помощью Бойких наборов

37
ответ дан user 8 November 2019 в 00:23
поделиться
12
ответ дан Stu 8 November 2019 в 00:23
поделиться

Существует некоторый материал в Apache Портативное Время выполнения (APR), что я ожидал бы быть очень солидным.

5
ответ дан jmah 8 November 2019 в 00:23
поделиться

Возможно http://sglib.sourceforge.net/ , если вам нужна простая в использовании, очень быстрая библиотека на основе макросов.

4
ответ дан 26 November 2019 в 20:37
поделиться

If hash tables, extensible strings and dynamic vector are enough for your needs, please have a look at the library I put toghether: http://code.google.com/p/c-libutl/.

I also would welcome any feedback!

2
ответ дан 26 November 2019 в 20:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: