디자인 모델 15 - 향 원 모델

향 원 모델 정의: 공유 기술 을 활용 하여 대량의 입자 도 대상 을 효과적으로 지원 합 니 다.초보 적 이해: 코드 의 공유, 서로 다른 사용자 가 사용 할 때 서로 다른 데이터 가 존재 하기 때문에 호출 방법 에 포 장 된 사용자 정보의 대상 을 입력 하면 됩 니 다.
code…
스포츠 용품 마다 기능 이 같 기 때문에 스포츠 용품 은 공유 되 지만 스포츠 용품 을 사용 하 는 사람 은 다르다.스포츠 용품 의 기본 유형:
public interface ShareSport {
    public void sport(User user);
}

탁구 의 실현 유형:
public class PingPang implements ShareSport {
    @Override public void sport(User user) {
        System.out.println(user.getName()+"       ");
    }
}

다른 두 실현 류 는 이와 유사 하 다.공장 류 는 어떤 스포츠 용품 이 있 으 면 바로 되 돌려 주 고, 이것 이 없 으 면 반 사 를 통 해 하 나 를 새로 만 든 다음 hashmap 에 추가 한 후 되 돌려 줍 니 다.
public class Factory {
    private HashMap hashMap=new HashMap<>();
    public ShareSport createObject(String string)
    {
        if(!hashMap.containsKey(string)) {
            ShareSport obj = null;
            try {
                string = "com.Flyweight." + string;
                Class clazz = Class.forName(string);
                obj = (ShareSport) clazz.newInstance();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (InstantiationException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
            hashMap.put(string, obj);
        }
        return hashMap.get(string);
 }

사용자 클래스:
public class User {
    private String name;
	//  、get、set  
}

main 방법:
public class Main {
    public static void main(String[] args) {
        Factory factory=new Factory();
        ShareSport pingpang=factory.createObject("PingPang");
        pingpang.sport(new User("Yang"));
        ShareSport pingpang2=factory.createObject("PingPang");
        pingpang.sport(new User("Song"));
        ShareSport valleyball=factory.createObject("Valleyball");
        valleyball.sport(new User("Yang"));
        factory.getSize();
    }
}

이 인 스 턴 스 에서 User 는 외부 상태 로 볼 수 있 고 운동 기 구 는 내부 상태 로 볼 수 있다.내부 상 태 는 공유 할 수 있다.디자인 에서 많은 대상 이 소수의 매개 변 수 를 제외 하고 모두 같은 것 을 발견 하면 소수의 매개 변 수 를 클래스 로 분리 하고 같은 부분 을 공유 할 수 있다.호출 방법 이 있 을 때 매개 변 수 를 다시 입력 합 니 다.예 를 들 어 상례: 탁구 한 자루 를 손 에 넣 을 필요 가 없고 몇 점 을 사서 모두 가 공유 할 수 있 으 며 농 구 를 해 야 하 는데 없 을 때 다시 사 야 한다.누가 탁 구 를 치 든 탁구 의 역할 은 모두 맞 는 것 이다.때 리 는 사람 이 다르다 는 것 을 보 여 주 려 면 호출 방법 은 사용 자 를 전송 하 는 것 이다.
전편
---The End---
다음 편

좋은 웹페이지 즐겨찾기