design patterns and liferay portlets