File tree Expand file tree Collapse file tree 9 files changed +127
-0
lines changed
src/com/anxpp/designpattern/bridge Expand file tree Collapse file tree 9 files changed +127
-0
lines changed Original file line number Diff line number Diff line change 1+ package com .anxpp .designpattern .bridge ;
2+ //抽象
3+ public abstract class AbstractSave {
4+ ISaveData saveData ;
5+ public AbstractSave (ISaveData saveData ){
6+ this .saveData = saveData ;
7+ }
8+ public abstract void save (Object data );
9+ }
Original file line number Diff line number Diff line change 1+ package com .anxpp .designpattern .bridge ;
2+ //实现
3+ public interface ISaveData {
4+ void save (Object data );
5+ }
Original file line number Diff line number Diff line change 1+ package com .anxpp .designpattern .bridge ;
2+ //细化抽象
3+ public class LocalSave extends AbstractSave {
4+ public LocalSave (ISaveData saveData ) {
5+ super (saveData );
6+ }
7+ @ Override
8+ public void save (Object data ) {
9+ System .out .print ("本地存储:" );
10+ saveData .save (data );
11+ }
12+ }
Original file line number Diff line number Diff line change 1+ package com .anxpp .designpattern .bridge ;
2+ //细化抽象
3+ public class NetSave extends AbstractSave {
4+ public NetSave (ISaveData saveData ) {
5+ super (saveData );
6+ }
7+ @ Override
8+ public void save (Object data ) {
9+ System .out .print ("网络存储:" );
10+ saveData .save (data );
11+ }
12+ }
Original file line number Diff line number Diff line change 1+ package com .anxpp .designpattern .bridge ;
2+ //具体实现
3+ public class SaveToDB implements ISaveData {
4+ @ Override
5+ public void save (Object data ) {
6+ System .out .println (data + " 存储到数据库" );
7+ }
8+ }
Original file line number Diff line number Diff line change 1+ package com .anxpp .designpattern .bridge ;
2+ //具体实现
3+ public class SaveToFile implements ISaveData {
4+ @ Override
5+ public void save (Object data ) {
6+ System .out .println (data + " 存储到文件" );
7+ }
8+ }
Original file line number Diff line number Diff line change 1+ package com .anxpp .designpattern .bridge ;
2+ //桥接模式
3+ public class SimpleBridge {
4+ public static void main (String args []){
5+ new LenevoComputer (new Amd ()).discribe ();
6+ new HaseeComputer (new Intel ()).discribe ();
7+ }
8+ }
9+ //实现者
10+ interface Cpu {
11+ String discribe ();
12+ }
13+ //具体实现者*2
14+ class Amd implements Cpu {
15+ public String discribe () {
16+ return "just so so..." ;
17+ }
18+ }
19+ class Intel implements Cpu {
20+ public String discribe () {
21+ return "great !" ;
22+ }
23+ }
24+ //抽象
25+ abstract class AbstractComputer {
26+ Cpu cpu ;
27+ public AbstractComputer (Cpu cpu ){
28+ this .cpu =cpu ;
29+ }
30+ public abstract void discribe ();
31+
32+ }
33+ //细化抽象*2
34+ class LenevoComputer extends AbstractComputer {
35+ public LenevoComputer (Cpu cpu ) {
36+ super (cpu );
37+ }
38+ @ Override
39+ public void discribe () {
40+ System .out .println ("联想笔记本cpu:" +super .cpu .discribe ());
41+ }
42+ }
43+ class HaseeComputer extends AbstractComputer {
44+ public HaseeComputer (Cpu cpu ) {
45+ super (cpu );
46+ }
47+ @ Override
48+ public void discribe () {
49+ System .out .println ("神舟笔记本cpu:" +super .cpu .discribe ());
50+ }
51+ }
Original file line number Diff line number Diff line change 1+ package com .anxpp .designpattern .bridge ;
2+ public class TestUse {
3+ public static void main (String args []){
4+ Object data = "数据" ;
5+ ISaveData saveDataDb = new SaveToDB ();
6+ ISaveData saveDataFile = new SaveToFile ();
7+ AbstractSave save ;
8+ save = new NetSave (saveDataDb );
9+ save .save (data );
10+ save = new NetSave (saveDataFile );
11+ save .save (data );
12+ save = new LocalSave (saveDataDb );
13+ save .save (data );
14+ save = new LocalSave (saveDataFile );
15+ save .save (data );
16+ }
17+ }
Original file line number Diff line number Diff line change 1+ /**
2+ * @author Administrator
3+ * 桥接模式
4+ */
5+ package com .anxpp .designpattern .bridge ;
You can’t perform that action at this time.
0 commit comments