小编San*_*o J的帖子

模块化Java ee应用程序

我需要重构一个Java EE应用程序,因为当前的设计不是很模块化,事实上它实在是一团糟.有一个商业门面,但由于应用程序是由几个人开发的,因此原始设计被忽略了几次.该应用程序当前正在使用JSF在tomcat上运行,但很快就会被移植到websphere.我已经对不同的设计模式进行了一些研究,以便从视图中封装业务逻辑,以及如何使应用程序模块化,以便更容易为其添加更多功能,因为将来应用程序将得到增强.我读过有关OSGI的内容,但我认为这将是一种矫枉过正.

该应用程序已分层.但我远没有定义API.我已经清理过应用程序了.现在,所有bean都通过业务外观方法访问业务逻辑.但业务外观包含大约40种方法,我认为这些方法并不是很好.

第三方编辑

例如,我有这些模型类

  • ManageLdap与类似的方法createAccountdeleteAccount
  • GroupManager 管理ldap组

在商业门面我有一个方法,createAccount

  • 调用ManagerLdap该类来创建一个ldap帐户和
  • 做一些伐木也
  • 电话 GroupManager

这个伪代码

package Model.ManageLdap

public class ManageLdap 
{
  public ldapAccount createAccount() {  }

  public ldapAccount deleteAccount() {  }
}

public class GroupManager
{
  public bool addAccountToGroup(var account) {  }
}
Run Code Online (Sandbox Code Playgroud)

并在商业门面

package BusinessFacade.Foo

public class SomeFoo
{
  public ldapAccount createAccount() 
  { 
    var ldapAccount = new ManageLdap.createAccount();
    Logger.log("Account created");
    var accountWasAdded = GroupManager.addAccountToGroup(ldapAccount);
  }     
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我想为应用程序添加其他功能,例如为用户创建subversion存储库的选项

  • 我必须实现一个模型类来创建repos,
  • 把一些方法放在业务门面和
  • 创建一个要由视图访问的其他bean.

这使得立面更大,更令人困惑,但除此之外,这不是我所说的模块化设计.

那么如何在没有巨大业务外观的情况下从视图中分离业务逻辑呢?

java architecture java-ee

6
推荐指数
1
解决办法
1877
查看次数

Rails中运行时的动态路由

我正在使用炼油厂开发一个网站.现在,对于在炼油厂后端创建的一个特定页面,我想使用自己的控制器和视图.所有用户可以使用此页面设置菜单位置,标题,元信息等.此页面的URL必须与所有其他页面相同.

例如,菜单结构如下所示:

  • menux
  • MENU1
    • MENU2
      • 具体页面
  • menux

"特定页面"的URL看起来像"locale/menu1/menu2/specific page"

该网站提供多种语言版本,因此我必须为所有语言创建这些路线.

目前我正在创建这样的路线:

specific_page_id = 1
Refinery::I18n.frontend_locales.each do |lang|
  slugs = []
  page = Refinery::Page.find_by_path_or_id(nil, specific_page_id)
  # get slug for page in current language
  slugs << page.translations.select { |p|  p.locale == lang  }.first.slug

  # get all slugs from parrent pages
  while !page.parent_id.blank?
    page = Refinery::Page.find_by_path_or_id(nil, page.parent_id)
    slugs << page.translations.select { |p|  p.locale == lang  }.first.slug
  end

  match "/:locale/#{slugs.reverse.join("/")}"  => "controller#action", :via => :get, :constraints => { :locale => /#{lang}/ }
end
Run Code Online (Sandbox Code Playgroud)

有了这个,我得到了一个到上述各种语言的指定页面的路径. …

routes runtime ruby-on-rails refinerycms ruby-on-rails-3

1
推荐指数
1
解决办法
1507
查看次数

Most efficient way to find objetcs in list of objects

I have a list or array (what is the correct term in python?) of objects. What is the most efficient way to get all objects matching a condition?

I could iterate over the list and check each element, but that doesn't seem very efficient.

objects = []
for object in list:
  if object.value == "123":
    objects.add(object)
Run Code Online (Sandbox Code Playgroud)

python arrays list

0
推荐指数
1
解决办法
231
查看次数

Ruby相当于PHP urlencode

我需要在Ruby中转换一个包含字符“ö”的URL。

在PHP中,urlencode为ö返回%F6,这似乎是ISO 8859中“ö”的十六进制值。

我尝试了几种不同的方法,但没有一个返回正确的字符:

  • CGI.escape'ö'->%C3%B6
  • URI.encode'o'->%C3%B6
  • ERB :: Util.url_encode'ö'->%C3%B6
  • 'ö'.force_encoding('iso-8859-1')-> \ xC3 \ xB

我应该使用哪种方法来获得所需的输出?

-e-

附加要求:

我只需要在URL的路径中转换这些字符。冒号,斜杠等应保持不变:

http://example.com/this/is/an/ö

将会

http://example.com/this/is/an/%F6

ruby encoding ruby-on-rails iso-8859-1

0
推荐指数
1
解决办法
49
查看次数