Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Дейтел Х.М. -> "Технологии профаммирования на Java 2 Книга 3" -> 137

Технологии профаммирования на Java 2 Книга 3 - Дейтел Х.М.

Дейтел Х.М. , Дейтел П.Дж., Сантри С.И. Технологии профаммирования на Java 2 Книга 3 — М.: Бином-Пресс, 2003. — 672 c.
ISBN 5-9518-0051-Х
Скачать (прямая ссылка): tehprogrammjava220033.pdf
Предыдущая << 1 .. 131 132 133 134 135 136 < 137 > 138 139 140 141 142 143 .. 271 >> Следующая

16 throws RemoteException;
312
Глава б
17
18 Il задание процентной ставки
19 public void setlnterestRate( double rate )
20 throws RemoteException; 21
22 Il задание срока хранения в годах
23 public void setTerm( int years )
24 throws RemoteException; 25
26 Il получение остатка на счету (баланса)
27 public double getBalance() throws RemoteException; 28
29 Il получение суммы начисленных процентов
30 public double getlnterestEarnedO throws RemoteException;
31 ) _
Рис. 6.3. Удаленный интерфейс InterestCalculator для вычисления простого процента
Интерфейс InterestCalculatorHome (рис. 6.4) представляет собой собственный интерфейс для EJB-компонента InterestCalculator. Интерфейс InterestCalculatorHome предоставляет метод create (строки 15-16) для создания экземпляров EJB-компонента InterestCalculator. Когда клиент вызывает метод create интерфейса InterestCalculatorHome, контейнер EJB вызывает метод ejbcreate класса InterestCalculatorEJB (рис. 6.5). Собственный интерфейс может объявлять нуль или более методов create. Например, мы можем объявить дополнительный метод create, принимающий параметр типа double, который инициализирует основную сумму (principal), используемую для вычисления простого процента.
Класс InterestCalculatorEJB (рис. 6.5) реализует бизнес-методы, объявленные в удаленном интерфейсе InterestCalculator. В строке 12 InterestCalculator реализует интерфейс SessionBean. Это свидетельствует о том, что InterestCalculatorEJB представляет собой сеансовый компонент EJB. В строках 17-19 объявляются переменные, которые хранят состояние компонента EJB между вызовами бизнес-методов EJB-компонента. В информацию о состоянии входит основная сумма principal, величина процентов interestRate и срок хранения term. Метод setPrincipal (строки 22-25) устанавливает основную сумму principal и сохраняет значение в переменной состояния principal. Метод setlnterestRate (строки 28-31) устанавливает переменную состояния interestRate для вычисления процентов. Метод setTerm (строки 34-37) устанавливает срок хранения term, для которого будет начисляться процент. Метод getBalance (строки 40-44) использует формулу а = р (1 + г)"
где
р — основная сумма (капитал)
г — процент годовых (например, 05 для 5%)
п — количество лет
а — сумма депозита на конец n-го года.
для вычисления баланса (т.е. суммы депозита). Метод getlnterestEarned (строки 47—50) вычисляет сумму процентов, вычитая основную сумму principal из балансовой суммы, вычисляемой методом getBalance.
1 // InterestCalculatorHome. Java
2// InterestCalculatorHome - собственный интерфейс для
3 // EOB-компонента InterestCalculator.
4 package com.deitel.advjhtpl.ejb.session.stateful.ejb; 5
Сеансовые компоненты EJB и распределенные транзакции 313
6 // Базовые библиотеки Java
7 import Java.rmi.RemoteException; 8
9// Стандартные расширения Java 10 import javax.ejb.*; 11
12 public interface lnterestCalCulatorHome extends EJBHome { 13
14 Il создание EJB-компонента InterestCalculator
15 public InterestCalculator create() throws RemoteException,
16 CreateException;
П }_,_,_¦l_,_.
Рис. 6.4. Собственный интерфейс InterestCalculatorHome для создания EJB-компонентов InterestCalculator
1// InterestCalculatorEJB.java
2 Il InterestCalculator - сеансовый компонент EJB с
3 // состоянием для вычисления простого процента.
4 package com.deitel.advjhtpl.ejb.session.stateful.ejb; 5
6// Вазовые библиотеки Java
7 import java.util.*;
8
9// Стандартные расширения Java 10 import javax.ejb. *; 11
12 public class InterestCalculatorEJB implements SessionBean { 13
14 private SessionContext sessionContext;
16 /I переменные состояния
17 private double principal;
18 private double in teres tRa te,-
19 private int term; 20
21 Il задание основной суммы
22 public void setPrincipal( double amount )
23 {
24 principal = amount;
25 } 26
27 11 задание процентной ставки
28 public void setlnterestRate( double rate )
29 {
30 interestRate = rate;
31 } 32
33 Il задание срока хранения в годах
34 public void setTerm( int years )
35 {
36 term = years;
37 } 38
39 11 получение баланса счета
314 Глава 6
40 public double getBalance()
41 {
42 Il вычисление простых процентов
43 return principal * Math.pow( 1.0 + interestRate, term );
44 } 45
46 Il получение суммы начисленных процентов
47 public double getlnterestEarned()
48 {
49 return getBalance() - principal;
50 } 51
52 Jl задание контекста SessionContext
53 public void setSessionContext( SessionContext context )
54 {
55 SessionContext = context;
56 } 57
58 Il создание экземпляра InterestCalculator
59 public void ejbCreate() {} 60
61 Il удаление экземпляра InterestCalculator
62 public void ejbRemove() {} 63
64 I/ пассивация экземпляра InterestCalculator
65 public void ejbPassivate() {} 66
67 Il активация экземпляра InterestCalculator
68 public void ejbActivate() {)
69 }____
Рис. 6.5. Реализация InterestCakulatorEJB удаленного интерфейса InterestCalculator
Метод setSessionContext (строки 53-56) представляет собой метод обратного вызова, определенный в интерфейсе SessionBean. Контейнер EJB вызывает метод setSessionContext после создания экземпляра компонента EJB. Интерфейс SessionContext расширяет интерфейс EJBContext, который определяет методы для получения информации о контейнере EJB.
Предыдущая << 1 .. 131 132 133 134 135 136 < 137 > 138 139 140 141 142 143 .. 271 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100