.


:




:

































 

 

 

 


10 2




12. . (, , , ) . . - . - , .

13. . , . . . , .

14. . , , . , . . .

15. - . , , . . .

16. . , , , . , . . . .

4

4.1.

:

class Base {}
class A extends Base {}
public class Quest{
public static void main(String[] args){
Base b = new Base();
A ob = (A) b;
} }

:

1) ;

2) ;

3) .

4.2.

A Quest2 . Quest2, ?

public class A{}

class Quest2 extends A, Object {}

1) public A;

2) public Quest2;

3) extends ;

4) Object .

4.3.

:

class A {A(int i) {}} // 1 class B extends A {} // 2

? ( )

1) ;

2) ;

3) 1;

4) 2.

4.4.

, Quest.java:

public class Base{
Base(){
int i = 1;
System.out.print(i);
} }
public class Quest4 extends Base{
static int i;
public static void main(String [] args){
Quest4 ob = new Quest4();
System.out.print(i);
} }

:

1) ;

2) 0;

3) 10;

4) 1;

5) .

4.5.

?

class Q {

private void show(int i){

System.out.println("1");

} }

class Quest5 extends Q{

public void show(int i){

System.out.println("2");

}

public static void main(String[] args){

Q ob = new Quest5();

int i = 1; //1

ob.show(i);

} }

1) : show() ;

2) : show() ;

3) : 1;

4) 2;

5) 1.

4.6.

?

class Q {

void mQ(int i) {
System.out.print("mQ" + i);
} }
class Quest6 extends Q {
public void mQ(int i) {
System.out.print("mQuest" + i);
}
public void mP(int i) {
System.out.println("mP" + i);
}
public static void main(String args[]) {
Q ob = new Quest6(); //1
ob.mQ(1); //2
ob.mP(1); //3
} }

1) mQ1 mP1;

2) mQuest1 mP1;

3) //1;

4) //2;

5) //3.

4.7.

A, A .

class A{

A(int i){ System.out.print(" A"); }

}

public class Quest extends A{

public static void main(String[] args){

Quest s= new Quest();

//1

}

public Quest(){

//2

}

publicvoid show() {

//3

} }

1) //1 A(1);

2) //1 super(1);

3) //2 super(1);

4) //2 A(1);

5) //3 super(1).

 
5

GRASP

, . . , , . .

- , , GRASP(General Responsibility Assignment Software Patterns).

,
.

Expert

, : , , .

, , . , , . , , ?

/* # 1: Expert: LineRequestQuest.java:Test.java: Quest.java */

public class Test { //

private int idTest;

private int numberQuest;

private String testName;

//

}

public class LineRequestQuest {

private int questID;

//

}

public class Quest { //

private int idQuest;

private int testID;

//

}

, , LineRequestQuest. Test, . , Expert Test , .. .

/* # 2: Expert: Test.java */

lass Test {

private int idTest;

private int numberQuest;

private String testName;

private int currentNumberQuest;

 

public int getCurrentNumberQuest() {

//

}

Test
-
currentNumberQuest:
-
idTest:
-
numberQuest:
-
testName:
+
getCurrentNumberQuest(): void
Quest
-
idQuest:
-
testID:
LineRequestQuest
-
questID:
 
 
 
1..n

//

}

. 5.1. Expert

Expert:

, ;

(Low Coupling);

(Highly Cohesive) , .

Expert , Low Coupling High Cohesion.

Creator

, , .

, . B A, :

(aggregate) ;

(contains) ;

(records or closely uses) ;

B A , , , ;

(has the initializing data), .

, (creator) .

. .

, Quest ( Quest).

LineRequestQuest Quest, Creator , Quest. :

. 5.2. Creator

/* # 3: Creator: Qest.java: LineRequestQuest.java:Test.java */

public class Test {

private int idTest;

private int numberQuest;

private String testName;

private int currentNumberQuest;

//

}

public class LineRequestQuest {

private int questID;

 

public void answerQuest() {

//

Vector q = new Vector();

q.add(makeRequest());

//

}

public Quest makeRequest() {

//

return new Quest();

}

}

public class Quest{

private int idQuest;

private int testID;

public Quest() {}

//

}

Creator (Low Coupling), , , . , . .

Low Coupling

, . , .

, :

;

  • ;
  • , , .

Quest Test. Test Course.

. 5.3. ,

Course makeQuest() Test. , , Quest .

. 5.4. Low Coupling

/* # 4: Low Coupling: Qest.java: Test.java: Course.java */

public class Course {

private int id;

private String name;

 

public void makeTest(){

Test test = new Test();

//

while (){

Quest quest = new Quest();

//

test.addTest(quest);

}

//

}

}

public class Test {

//

public void addTest(Quest quest){

//

}

}

public class Quest {

//

}

, Course Quest.

Course 5.5.

. 5.5. Low Coupling

/* # 5: Low Coupling: Qest.java: Test.java: Course.java */

public class Course {

private int id;

private String name;

 

public void makeTest() {

Test test = new Test();

//

test.addTest();

//

}

}

public class Test {

//

public void addTest() {

//

while () {

Quest quest = new Quest();

//

}

}

}

public class Quest {

//

}

, , ?

, Test
Quest.

, Quest Course, , . , .

A B:

A , B;

A , B, B , ;

A B;

B , A .

Low Coupling (Expert, Creator, High Cohesion). .

Low Coupling:

;

, .

High Cohesion

, , .

. , . .

, , :

, () ;

- , ;

, .

, .

Quest . ? Course, Quest Course. Course makeTest() Test. Course, .. Course makeTest(). Course , , .

.

:

1. . .

/* # 6: : Initializer.java */

public class Initializer {

public void createTCPServer(String port) {

//

}

public int connectDataBase(URL url) {

//

}

public void createXMLDocument(String name) {

//

}

}

2. . .

/* # 7: : NetLogicCreator.java */

public class NetLogicCreator {

public void createTCPServer() {

//

}

public void createTCPClient() {

//

}

public void createUDPServer() {

//

}

public void createUDPClient() {

//

}

}

3. . , , .

/* # 8: : TCPServer.java */

public class TCPServer {

public void createTCPServer() {

//

}

public void receiveData() {

//

}

public void sendData() {

//

}

public void compression() {

//

}

public void decompression() {

//

}

}

4. . .

/* # 9: : TCPServerCreator.java: DataTransmission.java: CodingData.java */

public class TCPServerCreator {

public void createTCPServer() {

//

}

}

public class DataTransmission {

public void receiveData() {

//

}

public void sendData() {

//

}

}

public class CodingData {

public void compression() {

//

}

public void decompression() {

//

}

}

, , , , . , . , , , . , .

Controller

, . , , , , .

. , . , .

, . .

Controller, , :

( );

, ( );

Handler ( ).

.

Controller , . - , . -
.





:


: 2016-04-03; !; : 652 |


:

:

: , .
==> ...

2015 - | 1639 -


© 2015-2024 lektsii.org - -

: 0.149 .