静的プロキシを実装する方法

実装手順:
1。インターフェースを作成し、メソッドを定義し、ターゲットとエージェントが実行する必要があることを表現します。

package com.itweiting.service;
public interface ThreeSquirrelSell {
    
    
     //定义方法 参数amount表示一次购买的数量
     //返回值表示优盘的价格
         float sell(int amount);
     //可以定义多个方法
}

2.ターゲットクラスを作成し、インターフェイスを実装します

package com.itweiting.factory;
import com.itweiting.service.ThreeSquirrelSell;
public class ThreeSquirrelFactory implements ThreeSquirrelSell{
    
    
    //目标类,厂家,厂家不接受用户的单独购买
    public float sell(int amount) {
    
    
        //一包零食的价格
        //后期根据amount数量进行调整价格,例如一箱零食100元,买两箱零食每箱90元
        return 100.0f;
    }
}

3.エージェントを作成し、インターフェースを実装します(拡張機能が実現されます)

package com.itweiting.shangjia;
import com.itweiting.factory.ThreeSquirrelFactory;
import com.itweiting.service.ThreeSquirrelSell;
//淘宝进行代理销售,
public class Taobao implements ThreeSquirrelSell {
    
    


    //声明商家代理的厂家是谁
    private ThreeSquirrelFactory factory=new ThreeSquirrelFactory();
    //实现销售的功能
    public float sell(int amount) {
    
    
        //向厂家发送订单,提醒厂家进行发货
        float price = factory.sell(amount);
        /*功能增强*/
        //商家进行加价,(即代理进行后期的加价)
        //代理类完成了目标类的方法调用后增加了其他功能(比如增减价格)
        price = price+25;
        //优惠
        System.out.println(price-20);
        //返回增加价格后的商品价格
        return price;
    }
}

4.クライアントクラスを作成し、エージェントを呼び出して操作を実行します。

package com.itweiting;
import com.itweiting.shangjia.Taobao;
public class ShopMain {
    
    
    public static void main(String[] args) {
    
    
        //创建淘宝的代理对象
        Taobao taobao =new Taobao();
        float price=taobao.sell(1);
        System.out.println(price);
    }
}

プロキシクラスによって完了する関数:1。ターゲットクラスメソッドの呼び出し2.関数の拡張の実現


おすすめ

転載: blog.csdn.net/qq_44143902/article/details/110260926