zoukankan      html  css  js  c++  java
  • java设计模式--桥接模式

    桥接模式(bridge):适用于多层继承机构 ,最少两个维度。

    比如 日志管理

    1.按格式分类

            操作日志,交易日志

    2.按距离分类

            本地记录日志,异地记录日志

    普通的多层次继承

    //普通多层次结构继承
    public interface Computer {
    
        void sale();
        
    }
    
    //台式机
    class Desktop implements Computer{
    
        public void sale() {
            System.out.println("台式机");
            
        }
        
    }
    //笔记本
    class Laptop implements Computer{
    
        public void sale() {
            System.out.println("笔记本");
            
        }
        
    }
    
    //联想台式机
    class LenovoDesktop extends Desktop{
        
        public void sale() {
            System.out.println("联想台式机");
            
        }
    }
    
    //联想笔记本
    class LenovoLaptop extends Laptop{
        
        public void sale() {
            System.out.println("联想笔记本");
            
        }
    }

    桥接模式

    //桥接模式
    public abstract class Computer2 {
        
        
        protected Pinpai pinpai;
    
        public Computer2(Pinpai pinpai) {
            this.pinpai = pinpai;
        }
        
        public void sale(){
            pinpai.sale();
        }
        
        public static void main(String[] args) {
            Computer2 computer2 = new Desktop2(new Lenovo());
            computer2.sale();
            
        }
        
    
    }
    
    class Desktop2 extends Computer2{
    
        public Desktop2(Pinpai pinpai) {
            super(pinpai);
        }
        
        public void sale(){
            super.sale();
            System.out.println("台式机");
        }
        
    }
    
    
    class Laptop2 extends Computer2{
    
        public Laptop2(Pinpai pinpai) {
            super(pinpai);
        }
        
        public void sale(){
            super.sale();
            System.out.println("笔记本");
        }
        
    }
    //品牌
    public interface Pinpai {
        
        void sale();
    
    }
    
    class Lenovo implements Pinpai{
    
        public void sale() {
            System.out.println("联想");
        }
        
    }
    
    class Dell implements Pinpai{
    
        public void sale() {
            System.out.println("戴尔");
            
        }
        
    }

    把两种分类分离开来。

    在一种类别中引入另一种,利用组合的方式实现多层继承结构

    优点:相互独立,容易扩展

  • 相关阅读:
    LA 6891 Money Transfers(最短路)
    Gym
    UVa 1662 Brackets Removal
    Gym 101334F Feel Good
    Gym 101334E Exploring Pyramids(dp+乘法原理)
    POJ 2112 Optimal Milking(二分+最大流)
    POJ 2115 C Looooops(模线性方程)
    UVa 11552 最小的块数(序列划分模型:状态设计)
    UVa 10534 波浪子序列(快速求LIS)
    UVa 10891 Sum游戏
  • 原文地址:https://www.cnblogs.com/jentary/p/5911037.html
Copyright © 2011-2022 走看看