13.2절은 클래스 다이어그램을 Java 코드로 변환하는 방법을 보여준다.
13.3절은 상속과 다형성으로 설계를 조정한다.
13.4절은 ATM 소프트웨어의 완전한 Java 코드 구현을 제시한다.
가시성
액세스 수정자는 객체의 속성 및 메서드가 다른 객체에 대한 가시성 또는 접근성을 결정한다.
우리가 우리의 디자인을 구현하기 전에, 우리는 우리 수업의 어떤 속성들과 방법들이 공적이어야 하고 어떤 것이 사적인 것이어야 하는지를 고려해야 한다.
속성은 일반적으로 비공개여야 하며 주어진 클래스의 클라이언트에 의해 호출되는 방법은 공개되어야 한다.
일반적으로 클래스의 다른 방법으로만 "유틸리티 방법"이라고 불리는 방법은 비공개여야 한다.
}The UML employs visibility markers for modeling the visibility of attributes and operations.Public visibility is indicated by placing a plus sign (+) before an operation or an attribute, whereas a minus sign (–) indicates private visibility
UML은 특성 및 작동의 가시성을 모델링하기 위해 가시성 마커를 사용한다.
공공 가시성은 작업 또는 속성 앞에 더하기 기호(+)를 배치하여 표시하며, 마이너스 기호(-)는 개인 가시성을 나타낸다.
항법성
그림 13.2의 클래스 다이어그램은 연결 라인에 탐색성 화살표를 추가하여 ATM 시스템의 클래스 간의 관계를 추가로 조정한다.
Navigability arrows
클래스 다이어그램에서 막대() 화살표가 있는 화살표로 표시됨
연계를 횡단할 수 있는 방향으로 표시한다.
프로그래머들은 탐색성 화살표를 사용하여 어떤 물체가 다른 물체에 대한 참조가 필요한지 결정한다.
양 끝에 항법성 화살표가 있거나 전혀 없는 연결은 양방향 항법성을 나타낸다. 항법은 연관 전체에서 어느 방향으로든 진행될 수 있다.
UML 설계를 통한 ATM 시스템 구현
우리는 이제 ATM 시스템 구현을 시작할 준비가 되었다.
그림 13.1과 그림 13.2의 클래스를 Java 코드로 변환한다.
코드는 시스템의 "골격"을 나타낼 것이다.
Four guidelines for each class:
1.Use the name located in the first compartment to declare the class as a public class with an empty no-argument constructor (Fig. 13.3).
2.Use the attributes located in the second compartment to declare the instance variables (Fig. 13.4).
3.Use the associations described in the class diagram to declare the references to other objects (Fig. 13.5).
4.Use the operations located in the third compartment of Fig. 13.1 to declare the shells of the methods (Fig. 13.6). If we have not yet specified a return type for an operation, we declare the method with return type void. Refer to the class diagrams of Figs. 12.17–12.21 to declare any necessary parameters.
각 클래스에 대한 4가지 지침:
1.첫 번째 칸에 위치한 이름을 사용하여 빈 무논쟁 생성자를 가진 공용 클래스로 선언한다(그림 13.3).
2.두 번째 구획에 있는 속성을 사용하여 인스턴스 변수를 선언한다(그림 13.4).
3.클래스 다이어그램에 설명된 연결을 사용하여 다른 개체에 대한 참조를 선언한다(그림 13.5).
4.그림 13.1의 세 번째 칸에 위치한 작업을 사용하여 방법의 쉘을 선언한다(그림 13.6). 아직 작업에 대한 반환 유형을 지정하지 않은 경우 반환 형식 void로 메소드를 선언한다. 필요한 파라미터를 선언하려면 그림 12.17–12.21의 클래스 다이어그램을 참조하십시오.
상속을 적용하려면 시스템에서 클래스 간의 공통성을 찾아보십시오.
유사한(동일하지 않은) 클래스를 보다 우아하고 효율적으로 모델링하기 위해 상속 계층을 만드십시오.
클래스 다이어그램을 수정하여 새 상속 관계를 통합하십시오.
업데이트된 설계를 Java 코드로 변환
시스템에서 금융 거래를 나타내는 문제.
ATM 시스템이 수행할 수 있는 트랜잭션을 나타내기 위해 BalanceQuirey, Withdrawal 및 Deposit 라는 세 개의 개별 트랜잭션 클래스를 생성했다.
그림 13.7은 BalanceQuiry, Withdrawal 및 Deposit 클래스의 속성과 운영을 보여준다.
각각 하나의 속성(account Number)과 하나의 작업(실행)을 공통으로 가지고 있다.
각 클래스는 트랜잭션을 적용할 계정을 지정하기 위해 속성 계정번호(accountNumber)를 필요로 한다.
각 클래스에는 ATM이 호출하여 트랜잭션을 수행하는 작업 실행이 포함되어 있다.
BalanceQuiry, Withdrawal 및 Deposit 은 트랜잭션의 유형을 나타낸다.
}Figure 13.7 reveals commonality among the transaction classes.
}Use inheritance to factor out the common features.
}Place the common functionality in a superclass, Transaction, that classes BalanceInquiry, Withdrawal- and Deposit extend.
'📌 java > Object-oriented Programming' 카테고리의 다른 글
Homework_9 (0) | 2020.05.13 |
---|---|
java - use case diagram, scenario (0) | 2020.05.09 |
ATM_Design (0) | 2020.05.09 |
java - UML (0) | 2020.05.07 |
Homework_8 (0) | 2020.05.07 |