Skip to content

Latest commit

 

History

History
62 lines (53 loc) · 1.46 KB

桥接.md

File metadata and controls

62 lines (53 loc) · 1.46 KB

Bridge

重点等级::star::star::star:

场景

将抽象与其实现分离开来,这样两者就可以独立地变化。
重点需要理解如何将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化。

代码示例

//实现化角色
interface Implementor
{
    public void OperationImpl();
}
//具体实现化角色
class ConcreteImplementorA implements Implementor
{
    public void OperationImpl()
    {
        System.out.println("具体实现化(Concrete Implementor)角色被访问" );
    }
}
//抽象化角色
abstract class Abstraction
{
   protected Implementor imple;
   protected Abstraction(Implementor imple)
   {
       this.imple=imple;
   }
   public abstract void Operation();   
}
//扩展抽象化角色
class RefinedAbstraction extends Abstraction
{
   protected RefinedAbstraction(Implementor imple)
   {
       super(imple);
   }
   public void Operation()
   {
       System.out.println("扩展抽象化(Refined Abstraction)角色被访问" );
       imple.OperationImpl();
   }
}


Implementor imple=new ConcreteImplementorA();
Abstraction abs=new RefinedAbstraction(imple);
abs.Operation();

项目案例

画笔 需要根据细度分为 三种,根据颜色可以分为多种,但根据业务不同的画笔不提供所有现有的颜色。 pen

Tutorial