絎竴縐嶈璁? 涓烘瘡涓涓被璁捐涓涓伐鍘?br />
1 package com.givetop.singleton;
2
3 public class Factory1 {
4 public static void main(String[] args){
5 Ford_Factory.getInstance().run();
6 Benz_Factory.getInstance().stop();
7 }
8 }
9
10 interface Car{
11 public void run();
12 public void stop();
13 }
14
15 class Ford implements Car{
16 public void run(){
17 System.out.println("Ford寮濮嬪惎鍔ㄤ簡!");
18 }
19 public void stop(){
20 System.out.println("Ford鍋滄浜?");
21 }
22 }
23
24 class Benz implements Car{
25 public void run(){
26 System.out.println("Benz寮濮嬪惎鍔ㄤ簡!");
27 }
28 public void stop(){
29 System.out.println("Benz鍋滄浜?");
30 }
31 }
32
33 class Ford_Factory{
34 public static Car getInstance(){
35 return new Ford();
36 }
37 }
38
39 class Benz_Factory{
40 public static Car getInstance(){
41 return new Benz();
42 }
43 }
44
涓烘瘡涓涓被璁捐涓涓伐鍘? 鏄劇劧榪欏ぇ鐨勫鍔犱簡浠g爜閲? 涓嶆槸濂界殑璁捐!
--------------------------------------------------------------
絎簩縐嶆柟娉? 涓哄疄鐜頒簡鍚屼竴鎺ュ彛鐨勭被鍒涘緩涓涓叕鍏辯殑宸ュ巶(鑰岃繖閲岀殑鍚勭杞﹀垰濂介兘瀹炵幇浜咰ar榪欎釜鎺ュ彛)
1 package com.givetop.singleton;
2
3 public class Factory2 {
4 public static void main(String[] args){
5 Factory.getInstance("Benz").run();
6 /*
7 Car car = Factory.getInstance("fsdf");
8 if(car!=null){
9 car.run();
10 car.stop();
11 }else{
12 System.out.println("涓嶈兘閫犺繖縐嶈濺!");
13 }
14 */
15 }
16 }
17
18 interface Car1{
19 public void run();
20 public void stop();
21 }
22
23 class Ford1 implements Car{
24 public void run(){
25 System.out.println("Ford1寮濮嬪惎鍔ㄤ簡!");
26 }
27 public void stop(){
28 System.out.println("Ford1鍋滄浜?");
29 }
30 }
31
32 class Benz1 implements Car{
33 public void run(){
34 System.out.println("Benz1寮濮嬪惎鍔ㄤ簡!");
35 }
36 public void stop(){
37 System.out.println("Benz1鍋滄浜?");
38 }
39 }
40
41 class Factory{
42 public static Car getInstance(String type){
43 Car c = null;
44 if("Ford".equals(type)){
45 c = new Ford1();
46 }
47 if("Benz".equals(type)){
48 c = new Benz1();
49 }
50 return c;
51 }
52 }
53
54
//榪欐牱浠嶇劧鏈変竴涓笉濂界殑鍦版柟, 灝辨槸浼犲叆涓涓伐鍘備笉鑳介犵殑涓滆タ浼氭姤閿? 蹇呴』鍦ㄥ鎴風鍒ゆ柇涓涓?
//鍦ㄦ墿鍏呭瓙綾葷殑鏃跺欒淇敼宸ュ巶,鐢ㄥ弽灝勬満鍒跺彲浠ヨВ鍐寵繖涓闂!
絎笁縐嶈繍鐢ㄥ弽灝勬満鍒躲
1 package com.givetop.singleton;
2
3 public class Factory3 {
4 public static void main(String[] args){
5 Car_Factory.getInstance("Benz2").run();
6 Car2 c = null ;
7 c = Car_Factory.getInstance("Ford2");
8 c.run();
9 c.stop();
10 c=Car_Factory.getInstance("Honda");
11 if(c==null){
12 System.out.println("涓嶈兘閫燞onda杞?");
13 }
14 }
15 }
16
17 interface Car2{
18 public void run();
19 public void stop();
20 }
21
22 class Ford2 implements Car2{
23 public void run(){
24 System.out.println("Ford寮濮嬪惎鍔ㄤ簡!");
25 }
26 public void stop(){
27 System.out.println("Ford鍋滄浜?");
28 }
29 }
30
31 class Benz2 implements Car2{
32 public void run(){
33 System.out.println("Benz寮濮嬪惎鍔ㄤ簡!");
34 }
35 public void stop(){
36 System.out.println("Benz鍋滄浜?");
37 }
38 }
39
40 class Car_Factory{
41 public static Car2 getInstance(String type){
42 Car2 c = null;
43 try {
44 c = (Car2)Class.forName("com.givetop.singleton."+type).newInstance();
45 } catch (InstantiationException e) {
46 // TODO Auto-generated catch block
47 e.printStackTrace();
48 } catch (IllegalAccessException e) {
49 // TODO Auto-generated catch block
50 e.printStackTrace();
51 } catch (ClassNotFoundException e) {
52 // TODO Auto-generated catch block
53 //e.printStackTrace();
54 System.out.println("error here!");
55 }
56 return c;
57 }
58
59 }
60
鏄劇劧榪欐牱鍦ㄥ鍔犱竴涓瓙綾?濡傚湪姝や緥涓姞涓涓狧onda鐨勭被鏃?涓嶉渶瑕佷慨鏀瑰伐鍘傛柟娉曪紒

]]>