간단한 자바 스크립트 위젯 디자인 질문. 나는 자바 스크립트에서 최근에 일하기 시작했다. 그리고 내 작업의 일부로, 재사용 가능한 많은 코드를 작성하려고합니다. 그래서 나를 위해 javascript widget이 가장 좋은 방법 인 것 같습니다. 그러나 나는 디자인 딜레마에 직면하고 있으며 올바른 대답을 찾을 수 없습니다.OOPs의 개념을 자바 스크립트 위젯
나는 HTML 컴포넌트에서 문자열을 변경하는 간단한 자바 스크립트 위젯을 가지고있다. 그래서 내 위젯은 다음과 같이 다소이다
(function() {
var convertString = function() {
$(".classForHtmlComponentsIWantToHandle").each(function(index, element) {
//js_fu stuff done with string fetched from "element"
});
};
var _somePrivateHelperMethod() {
//some work that would have been impossible without this helper method
};
GloballyDefinedNamespace.StringUtils = {convert : convertString};
}());
이 내가 DOM에서 모든 HTML 구성 요소를 추출, 당신이 내 위젯 틱 기능에 주목한다면 저 위에서 이제 나중에
GloballyDefinedNamespace.StringUtils.convert();
를 호출 할 수 있습니다 , 나는 문자열을 변경하고 싶다. 흥미로운 점은 HTML이 span과 div가 동일한 CSS 클래스와 함께 있고 textbox 구성 요소가 CSS 클래스 인 것입니다.
둘 다 값을 추출하고 새 값을 다시 설정하는 다른 방법이 있습니다. 내 경험에 비추어 볼 때 이것이 문자열을 변경하는 위젯이라면 신경 써야 할 모든 것이 획일적 인 방식으로 문자열을 "유지"한 다음 객체 기대치를 기반으로한다는 점에서 내 위젯은 맹목적으로 작동 할 수 있어야합니다.
"오리처럼 들리면 오리처럼 걷습니다. 그러면 오리입니다." 사물의 종류.
그래서 효과적으로 내 위젯에 텍스트 상자 또는 스팬되는 "요소"개체를 구별에 대해 걱정하지 수 있도록하고 싶습니다. 대신 일반 래퍼로 포장하십시오. 사람들이 자바 스크립트의 일반적인 규칙을 위젯 것을 충고했다 그러나
위젯 내에서 구성 요소 별 물건을 처리하는 것입니다. 나는 확실하게 인터페이스로 프로그래밍하고 구체적으로 프로그래밍하지 않는다고 확신하므로 확신하지 못한다. 그래서 나는 갈등을 겪고있다. 내 예에서
위, 나는 강조 딜레마가이 문제에 정의를하지 그렇게 생각하지 않지만, 더 큰 규모의이 종종 나를 위해 질문으로 나타납니다.
나는 HTML DOM 내 위젯 내에서 해당 구성 요소의 독립을 구축하는 방법에 관해서는, 사람의 의견을 듣고 싶습니다? 같은 인터페이스를 사용하여 자바 스크립트 래퍼 객체를 작성한 다음이를 별도로 선택하고 다음과 같이 메소드 호출을 작성하는 솔루션입니까?
(function() {
var locateAllComponents = function() {
$(".generic-class").each(function(index, element) {
//wrap element into suitable wrapper that has common interface for getter
//setter.
GloballyDefinedNamespace.StringUtils.convert(wrappedElement);
});
};
}())
모든 통찰력과 응답은 높게 평가 될 것이다.