----------------------android培训、java培训、期待与您交流!----------------------
享元模式,按个人理解就是将共性属性或者方法抽取,形成一个个接口或者抽象类或者方法等。享元模式有两分:内部状态,外部状态。以方法为例:内部状态指的是该方法里边特有的属性或者变量。而外部状态指的是给这个方法传入的参数。
下边的解释是在网上找的资料,所谓享元模式,说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。在该模式中,包括抽象的享元,具体的享元,享元工厂以及客户端。其中抽象的享元为公共接口或抽象类,具体的享元实现抽象享元角色所规定的接口,享元工厂负责创建和管理享元角色。
下面写了一个程序实现享元模式:包括抽象享元角色Person.java,两个具体享元角色OldFlyweight.java和YoungFlyweight.java,享元工厂FlyweightFactory.java,最后是一个客户端测试类ClientTest_Flyweight.java。
Person.java:

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

OldFlyweight.java:

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

YoungFlyweight.java:

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

FlyweightFactory.java:

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

ClientTest_Flyweight.java:

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

下面是程序运行截图:
可以看到,第一次使用的时候是直接创建,以后再用到该对象的时候则是直接获取该对象。这就是享元模式的好处。
----------------------android培训、java培训、期待与您交流!----------------------