PureMVC 간단 한 예제 및 원리 설명 - Model 층

PureMVC 간단 한 예제 및 원리 설명
-- Model 층
PureMVC 는 MVC 프레임 워 크 로 Model, View, Controller 의 독립 성 을 최대한 유지 하여 각 층 간 의 결합 을 줄인다.
전편 'PureMVC 간단 한 예시 와 그 원리 설명 - 시작' 에 서 는 본 예시 의 취지, 주요 기능 파일 구 조 를 다 루 고 있 으 며, 퓨 어 MVC 에 포 함 된 핵심 구성 도 소개 했다.
회고:
  • 본 예시 의 취지: 본 예 는 공식 EmployeeAdmin 예시 에서 간소화 한 것 으로 PureMVC 의 원 리 를 더욱 간단 하고 명확 하 게 논술 하 는 데 목적 을 둔다.
  • 주요 기능: 사용자 의 추가 와 삭제.
  • 파일 구조: http://dl.iteye.com/upload/picture/pic/46563/4dc24cc0-42d5-3e88-8d78-ea2011513dca.png
  • PureMVC 의 핵심 구성: Proxy, Mediator, Command (Macrocand & Simple Command), Facade.

  • 이 절 에 서 는 Model 층 을 다 룹 니 다.
    Model 층 은 VO 와 Mediator 로 구성 되 어 있 으 며 매우 간단 합 니 다. 두 가지 유형 만 포함 합 니 다. UserVO 와 UserProxy.
    UserVO 의 구조 기 는 사용자 의 추가 (email 과 비밀 번 호 를 통 해) 를 초기 화 하 는 데 사 용 됩 니 다. 다른 isValid 속성 은 사용자 의 이메일 이 합 법 적 인지, 비밀번호 길 이 를 검증 합 니 다.
    /**
    UserVO
      :  
    */
    package com.superwulei.model.vo {
    
    	public class UserVO {
    
    		public var email:String = '';            //    
    		public var password:String = '';         //  
    		public var regDate:Date;                 //    
    
    		public function UserVO(email:String, password:String) {
    			this.email = email;
    			this.password = password;
    			this.regDate = new Date();
    		}
    
    		/*
    		      
    		email:       , .cn  
    		password:           6 
    		*/
    		public function get isValid():Boolean {
    			var emailRegExp:RegExp = /^\w+[@]\w+(.com)$/;
    			return (emailRegExp.test(this.email) && this.password.length >= 6);
    		}
    	}
    }

     
    UserProxy 코드 는 다음 과 같 습 니 다.UserProxy 가 Proxy 를 계승 합 니 다.Proxy 에 Object 라 는 data 개인 변수 가 있 습 니 다. 이 Object 의 변 수 를 사용 하여 모든 데 이 터 를 저장 할 수 있 습 니 다.UserProxy 구조 방법 에서 우 리 는 슈퍼 방법 을 통 해 부모 구조 기 를 호출 하고 Object 의 data 를 Arrary Collect 형식 으로 변환 합 니 다.data 는 개인 적 인 것 이기 때문에 getter 를 통 해 속성 을 되 돌려 주 는 공유 방법 으로 "Array Collection" 형식의 data 를 되 돌려 줍 니 다.이 users 속성 에 대상 을 추가 하고 삭제 하 는 데 사용 할 두 가지 다른 방법 을 정의 합 니 다.사실 여러분 은 이제 알 수 있 을 것 입 니 다. 이 users 속성 이 존재 하 는 목적 은 바로 UserVO 대상 을 저장 하기 위 한 것 입 니 다.
    package com.superwulei.model
    {
    	import com.superwulei.model.vo.UserVO;
    	
    	import mx.collections.ArrayCollection;
    	
    	import org.puremvc.as3.patterns.proxy.Proxy;
    
    	public class UserProxy extends Proxy
    	{
    		public static const NAME:String = 'UserProxy';
    		
    		public function UserProxy()
    		{
    			super(NAME,new ArrayCollection());
    		}
    		
    		public function get users():ArrayCollection{
    			return data as ArrayCollection;
    		}
    		/*     */
    		public function addItem(item:Object):void{
    			users.addItem(item);
    		}
    		/*     */
    		public function deleteItem(item:Object):void{
    			var user:UserVO = item as UserVO;
    			for(var i:int = 0; i < users.length; i++){
    				if(users[i].email == user.email){
    					users.removeItemAt(i);
    				}
    			}
    		}
    	}
    }

    Model 층 은 매우 간단 하 다. PureMVC 디자인 의 추구 도 마찬가지 로 Model 층 은 안정 적 이 고 다른 층 의 변화 로 인해 변화 하지 않 을 것 이다.
    이 절 에서 Model 층 을 설 명 했 는데 관건 적 인 것 은 Proxy 의 data 로 매우 중요 하고 의미 가 있다.
     
    전편
    다음 편

    좋은 웹페이지 즐겨찾기