Android 개발 디자인 모델 1 편: 교체 기 모드
int[] array=new int[5];
for(int i=0;i<array.length;i++){
System.out.println(""+i);
}
또는:
int[] array=new int[5];
for(int i:array){
System.out.println(""+i);
}
물론 i 를 아래 표 시 를 옮 기 는 방식 으로 배열 요 소 를 옮 겨 다 니 는 방법 도 더 있 습 니 다.디자인 모드 를 사용 하여 작성 할 때 i 의 행 위 를 교체 기 로 추상 화 할 수 있 습 니 다. 이런 모델 을 우 리 는 교체 기 모드 라 고 부 릅 니 다.교체 기 모드 는 하나의 집합체 로 사용 할 수 있다.자바 도 하나의 도구 클래스 를 제공 합 니 다: 자바 util. Iterator < E > 와 유사 합 니 다. 장면 수요 책장 에는 5 권 의 기술 서적 이 있 는데 책 이름 을 일률적으로 옮 겨 다 니 라 고 요구 하면 Andriod 의 EditText 에 표 시 됩 니 다.위의 수 요 를 예 로 들 면 구체 적 인 수 요 를 아래 의 설명도 까지 구체 적 으로 할 수 있다.
Aggregate 인터페이스 Aggregate 인 터 페 이 스 는 점점 증가 하 는 '집합' 이다.이 인 터 페 이 스 를 실현 하 는 클래스 는 배열, 집합 과 유사 한 '집합' 으로 변 한다.기 중합 을 나타 내 는 인터페이스.Iterator 인터페이스 Iterator 인터페이스 실행 요소 가 증가 하여 순환 변수 와 유사 한 기능 을 가지 고 있 습 니 다.실행 증가, 옮 겨 다 니 는 인 터 페 이 스 를 표시 합 니 다.북 클래스 북 은 책 을 나타 내 는데 주로 책의 상세 함 을 얻 기 위 한 것 이다.Bookshellf 류 Bookshellf 는 책장 을 표시 합 니 다. 이 는 Aggregate 인 터 페 이 스 를 실현 하여 취 합 처리 합 니 다.BookshellfIterator 류 BookshellfIterator 는 책장 을 스 캔 하 는 클래스 를 표시 하여 Iterator 의 인터페이스 기능 을 실현 합 니 다. -----------------------------------------Iterator Patterns Activity 류 Iterator Patterns Activity 는 Android 의 메 인 인터페이스 로 위 에서 작 성 된 코드 를 표시 하고 테스트 하 는 데 사 용 됩 니 다.
/**
* Iterator , Iterator
* 、 , iterator
* Iterator 。
* @author terry
*
*/
public interface Aggregate {
public abstract Iterator iterator();
}
Iterator 인터페이스
public interface Iterator {
public abstract boolean hasNext(); // true
public abstract Object next(); //
}
next 방법 은 취 합 된 요 소 를 되 돌려 주 는 것 입 니 다.그러나 next 방법의 기능 은 이 뿐만 이 아니다.사실 다음 next 방법 을 호출 할 때 다음 요 소 를 되 돌 릴 수 있 도록 내부 상태 에서 다음 단계 로 조용히 들 어가 야 합 니 다.한편, Iterator 는 두 가지 방법 만 묘 사 했 는데 이 두 가지 방법 이 어떻게 실현 되 는 지 는 Bookshellf Iterator 내부 의 실현 에 달 려 있다. 도서 류
/**
*
* @author terry
*
*/
public class Book {
private String name="";
public Book(String name){
this.name=name;
}
public String getName(){
return this.name;
}
}
Bookshellf 클래스
/**
*
* Aggreagate 。
* @author terry
*
*/
public class BookShelf implements Aggregate{
private Book[] books;
private int last=0;
public BookShelf(int maxSize){
this.books=new Book[maxSize];
}
public Book getBookAt(int index){
return books[index];
}
public BookShelf appendBook(Book book){
this.books[last]=book;
last++;
return this;
}
public int getLength(){
return this.last;
}
@Override
public Iterator iterator() {
// TODO Auto-generated method stub
return new BookShelfIterator(this);
}
}
Bookshellf 는 Aggregate 인 터 페 이 스 를 실 현 했 습 니 다. 이 방법 은 Bookshellf Iterator 류 의 대상 인 스 턴 스 를 생 성하 고 되 돌려 줍 니 다. 즉, 책장 을 스 캔 할 때 얻 은 '집합' 을 되 돌려 주 라 는 명령 을 보 냅 니 다. BookshellfIterator 클래스
1 /**
2 * “ ”
3 * @author Administrator
4 *
5 */
6 public class BookShelfIterator implements Iterator {
7
8 private BookShelf bookShelf;
9 private int index;
10
11 public BookShelfIterator(BookShelf bookShelf){
12 this.bookShelf=bookShelf;
13 this.index=0;
14 }
15
16
17 @Override
18 public boolean hasNext() {
19 // TODO Auto-generated method stub
20 if(index<bookShelf.getLength()){
21 return true;
22 }else{
23
24 return false;
25 }
26
27 }
28
29 @Override
30 public Object next() {
31 // TODO Auto-generated method stub
32 Book book=bookShelf.getBookAt(index);
33 index++;
34
35 return book;
36 }
37
38 }
위의 일련의 코드 를 작성 한 후에 우 리 는 안 드 로 이 드 의 메 인 인터페이스 에서 위의 Iterator 를 사용 하여 위 에서 제시 한 요 구 를 옮 겨 다 닐 수 있 습 니 다. Iterator Patterns Activity 클래스
public class IteratorPatternsActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText et=(EditText)findViewById(R.id.EditText01);
BookShelf bookShelf=new BookShelf(5);
bookShelf.appendBook(new Book("android developer"))
.appendBook(new Book("Windows Phone 7 developer"))
.appendBook(new Book("
IOS
developer"))
.appendBook(new Book("BADA developer"))
.appendBook(new Book("Lion developer"));
Iterator iterator=bookShelf.iterator();
while(iterator.hasNext()){
Book book=(Book)iterator.next();
et.setText(et.getText()+" "+book.getName());
}
}
}
위 에서 실 행 된 결과:
더 많은 기능 확장 위 에 두 가지 기능 만 설명 되 어 있 습 니 다. hasNext () 와 Next () 방법 입 니 다. 이 기초 위 에서 확장 하려 면 얼마나 편리 한 지 생각해 보 세 요. 예 를 들 어 뒤쪽 에서 앞으로 의 역방향 으로 이동 한 후, 뒤쪽 에서 앞으로 의 양 방향 으로 이동 (Next, Previous...) 아래 표 시 를 지정 하면 바로 얻 을 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.