結構型模式(二):Bridge(橋樑模式)

來源:互聯網
上載者:User

將抽象化與實現化脫耦,使得二者可以獨立的變化,也就是說將他們之間的強關聯變成弱關聯,也就是指在一個軟體系統的抽象化和實現化之間使用組合/彙總關係而不是繼承關係,從而使兩者可以獨立的變化。

例子:比如你要做山寨產品,更新一定要快,什麼流行生產什麼,但工廠還是那個工廠。

 1 abstract class Product{
2 public abstract void beforeProducted();
3 public abstract void beforeSelled();
4 }
5
6 class House extends Product{
7 @Override
8 public void beforeProducted() {
9 System.out.println("生產出來房子是這樣的");
10 }
11 @Override
12 public void beforeSelled() {
13 System.out.println("生產出來的房子賣出去了");
14 }
15 }
16
17 class Clothes extends Product{
18 @Override
19 public void beforeProducted() {
20 System.out.println("生產出來衣服是這樣的");
21 }
22 @Override
23 public void beforeSelled() {
24 System.out.println("生產出來的衣服賣出去了");
25 }
26 }
27
28 abstract class Crop{
29 private Product product;
30 public Crop(Product product){
31 this.product=product;
32 }
33 public void makeMoney(){
34 this.product.beforeProducted();
35 this.product.beforeSelled();
36 }
37 }
38
39 class shanzaiCrop extends Crop{
40 public shanzaiCrop(Product product){
41 super(product);
42 }
43 @Override
44 public void makeMoney() {
45 super.makeMoney();
46 System.out.println("狂賺錢");
47 }
48 }
49
50 public class Test {
51 public static void main(String[] args) {
52 Crop housecrop=new shanzaiCrop(new House());
53 housecrop.makeMoney();
54 Crop clothcrop=new shanzaiCrop(new Clothes());
55 clothcrop.makeMoney();
56 }
57 }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.