Слюни, почему StatefulKnowledgeSession имеет другую базу знаний - PullRequest
0 голосов
/ 15 февраля 2012

Я пытаюсь получить некоторый опыт работы со структурой Drools.Во время теста я пробую следующий тест

    @Test public void testDrools() {
        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
        StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession();
        assertSame(session.getKnowledgeBase(), kbase);
    }

Почему этот тест не пройден?Не правда ли, что сессия имеет ссылку на KnowledgeBase, использованную для его создания?Я немного запутался по этому поводу.Может быть, кто-нибудь поможет мне понять это.

Заранее большое спасибо.Alberto

1 Ответ

1 голос
/ 15 февраля 2012

Это детали реализации, и это происходит главным образом потому, что Drools пришлось поддерживать обратную совместимость с версиями Drools 4.x.И kbase, и session.getKnowledgeBase () являются обертками над реальной базой знаний, и поэтому у вас есть 2 обертки, но существует только один фактический экземпляр базы знаний, на который указывают обе обертки.

...