Ruby 디자인 모델 프로 그래 밍 에서 외관 모델 에 대한 응용 사례 분석
외관 모드 는 서브 시스템 의 서로 다른 인터페이스 에 통 일 된 인 터 페 이 스 를 제공한다.외관 은 상부 인 터 페 이 스 를 정의 하고 복잡 도와 숨겨 진 서브 시스템 간 의 통신 과 의존 관 계 를 낮 추어 서브 시스템 을 더욱 쉽게 사용 하도록 한다.
예 를 들 어 서브 시스템 에는 서로 다른 종류 가 있 는데 그 중 일 부 는 서로 의존한다.이것 은 클 라 이언 트 로 하여 금 서브 시스템 의 종 류 를 사용 하기 어렵 게 한다.왜냐하면 클 라 이언 트 는 모든 종 류 를 알 아야 하기 때문이다.외관 이 전체 서브 시스템 의 입구 까지 생 겼 다.일부 클 라 이언 트 는 서브 시스템 의 일부 기본 적 인 행위 만 필요 하고 서브 시스템 의 유형 에 대해 많은 맞 춤 형 제작 을 하지 않 으 며 외관 은 이러한 클 라 이언 트 에 게 간단 한 인 터 페 이 스 를 제공 합 니 다.일부 서브 시스템 의 클래스 에서 더 많은 행 위 를 맞 추 는 클 라 이언 트 만 외관 뒤의 디 테 일 에 관심 을 가 질 수 있 습 니 다.
외관 모드:시스템 의 인터페이스 에 통 일 된 인 터 페 이 스 를 제공 합 니 다.외관 은 하위 시스템 이 쉽게 사용 할 수 있 도록 고 층 인 터 페 이 스 를 정의 합 니 다.
외관 모드 는 언제 사용 합 니까?
필요:
개인 투자 자가 주식 을 매매 하 다.
초기 코드:
# -*- encoding: utf-8 -*-
# 1
class Stock1
def buy
puts ' 1 '
end
def sell
puts ' 1 '
end
end
# 2
class Stock2
def buy
puts ' 2 '
end
def sell
puts ' 2 '
end
end
# 3
class Stock3
def buy
puts ' 3 '
end
def sell
puts ' 3 '
end
end
# 1
class NationalDebt1
def buy
puts ' 1 '
end
def sell
puts ' 1 '
end
end
# 1
class Realty1
def buy
puts ' 1 '
end
def sell
puts ' 1 '
end
end
s1 = Stock1.new
s2 = Stock2.new
s3 = Stock3.new
n1 = NationalDebt1.new
r1 = Realty1.new
s1.buy
s2.buy
s3.buy
n1.buy
r1.buy
s1.sell
s2.sell
s3.sell
n1.sell
r1.sell
질문:사용자 가 주식,국채,부동산 상황 을 알 아야 하고 이런 항목 의 구체 적 인 구 매 와 판매 에 참여 해 야 하 며 결합 성 이 매우 높다 는 것 을 알 수 있다.
개선 코드
# -*- encoding: utf-8 -*-
# 1
class Stock1
def buy
puts ' 1 '
end
def sell
puts ' 1 '
end
end
# 2
class Stock2
def buy
puts ' 2 '
end
def sell
puts ' 2 '
end
end
# 3
class Stock3
def buy
puts ' 3 '
end
def sell
puts ' 3 '
end
end
# 1
class NationalDebt1
def buy
puts ' 1 '
end
def sell
puts ' 1 '
end
end
# 1
class Realty1
def buy
puts ' 1 '
end
def sell
puts ' 1 '
end
end
#
class Fund
attr_accessor s1, s2, s3, n1, r1
def initialize
s1 = Stock1.new
s2 = Stock2.new
s3 = Stock3.new
n1 = NationalDebt1.new
r1 = Realty1.new
end
def buy
s1.buy
s2.buy
s3.buy
n1.buy
r1.buy
end
def sell
s1.sell
s2.sell
s3.sell
n1.sell
r1.sell
end
end
f1 = Fund.new
f1.buy
f1.sell
장점:사용 자 는 각종 주식 을 이해 할 필요 가 없고 펀드 를 팔면 된다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ruby의 단일 메소드 및 단일 클래스 상세 정보단일 방법 Ruby는 단일 객체에만 적용되는 단일 객체 추가 방법을 단일 방법이라고 합니다. 또한 위에서 사용한 정의 방법 외에 Object#define_를 통해singleton_method 방법으로 단일 방법 정의...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.