?? 客戶的權(quán)限要求采集回來了,天哪,根本不是什么權(quán)限的設(shè)置和判斷了,原有內(nèi)容管理中的權(quán)限管理(RBAC Role based Access Control 基于角色的訪問控制)根本不能解決問題.?經(jīng)過仔細(xì)分析,所有要求具為領(lǐng)導(dǎo)拍腦袋定下來的不符合邏輯的一些邏輯。如何解決?隨即想到了采用專家系統(tǒng)來解決這個(gè)問題。找到開源的rete算法java實(shí)現(xiàn)包Drools(http://www.theserverside.com/articles/content/Drools/article.html), 并察看了專家系統(tǒng)的部分書籍。但是項(xiàng)目時(shí)間緊迫所以放棄了,主要是其規(guī)則存放于xml中,沒想出好的辦法與本工程良好的配合起來。所以還是決定先采用簡單 的決策樹(本系統(tǒng)中正好有樹狀結(jié)構(gòu)的內(nèi)容管理系統(tǒng),很容易擴(kuò)展)解決問題。在每個(gè)樹狀決策節(jié)點(diǎn)可以加入條件和行為,如何解析?成了一個(gè)問題。再 google一下,找找開源的腳本解析,哦不錯(cuò)有java腳本的解析器( BeanShell---Java應(yīng)用程序腳本引摯 )可以直接解析java語句,功能比較強(qiáng)大,包也不大。不得不佩服現(xiàn)在的開源真是如火如荼,還是早早的加入進(jìn)去吧。

          主要測試代碼:
          //創(chuàng)建一個(gè)bsh解釋器實(shí)例
          ??Interpreter bsh = new Interpreter();
          //測試執(zhí)行一個(gè)接口實(shí)現(xiàn)的類
          String program = "public Object excute(int aa,String bb){return \"Cool\";}";
          program ="Command command= new Command(){"+program+"};";
          program += "Object obj=command.excute(aa,bb);";
          bsh.eval(program);
          //測試執(zhí)行一個(gè)函數(shù)
          String program = "Object excute(int aa,String bb){return \"bb+aa\";}";
          program += "Object obj=excute(aa,bb);";String program = "Object excute(int aa,String bb){return \"bb+aa\";}";
          program += "Object obj=excute(aa,bb);";
          bsh.eval(program);
          ??
          ??bsh.eval(program);

          posts - 9, comments - 27, trackbacks - 0, articles - 19

          Copyright © publisher luo

          主站蜘蛛池模板: 平乡县| 县级市| 西乌珠穆沁旗| 天水市| 信丰县| 灵石县| 芷江| 阿拉善左旗| 永和县| 松滋市| 邻水| 华蓥市| 融水| 奉贤区| 五河县| 蓬安县| 耒阳市| 盱眙县| 富蕴县| 洛隆县| 和平县| 万安县| 苏尼特右旗| 祁门县| 综艺| 金阳县| 象山县| 曲周县| 阳东县| 陈巴尔虎旗| 海门市| 汉阴县| 铁力市| 西贡区| 绥滨县| 华容县| 峨眉山市| 高邮市| 敦化市| 偃师市| 广水市|