我需要重构一个Java EE应用程序,因为当前的设计不是很模块化,事实上它实在是一团糟.有一个商业门面,但由于应用程序是由几个人开发的,因此原始设计被忽略了几次.该应用程序当前正在使用JSF在tomcat上运行,但很快就会被移植到websphere.我已经对不同的设计模式进行了一些研究,以便从视图中封装业务逻辑,以及如何使应用程序模块化,以便更容易为其添加更多功能,因为将来应用程序将得到增强.我读过有关OSGI的内容,但我认为这将是一种矫枉过正.
该应用程序已分层.但我远没有定义API.我已经清理过应用程序了.现在,所有bean都通过业务外观方法访问业务逻辑.但业务外观包含大约40种方法,我认为这些方法并不是很好.
第三方编辑
例如,我有这些模型类
ManageLdap与类似的方法createAccount和deleteAccountGroupManager 管理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存储库的选项
这使得立面更大,更令人困惑,但除此之外,这不是我所说的模块化设计.
那么如何在没有巨大业务外观的情况下从视图中分离业务逻辑呢?
我正在使用炼油厂开发一个网站.现在,对于在炼油厂后端创建的一个特定页面,我想使用自己的控制器和视图.所有用户可以使用此页面设置菜单位置,标题,元信息等.此页面的URL必须与所有其他页面相同.
例如,菜单结构如下所示:
"特定页面"的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)
有了这个,我得到了一个到上述各种语言的指定页面的路径. …
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)
我需要在Ruby中转换一个包含字符“ö”的URL。
在PHP中,urlencode为ö返回%F6,这似乎是ISO 8859中“ö”的十六进制值。
我尝试了几种不同的方法,但没有一个返回正确的字符:
我应该使用哪种方法来获得所需的输出?
-e-
附加要求:
我只需要在URL的路径中转换这些字符。冒号,斜杠等应保持不变:
http://example.com/this/is/an/ö
将会
architecture ×1
arrays ×1
encoding ×1
iso-8859-1 ×1
java ×1
java-ee ×1
list ×1
python ×1
refinerycms ×1
routes ×1
ruby ×1
runtime ×1