首页 > 其他分享 >抽象类

抽象类

时间:2024-03-03 21:55:47浏览次数:22  
标签:JSONArray symbol channelEnum result put 抽象类 public

public abstract class NotifyMessage {

    private ChannelEnum channelEnum;

    private String symbol;

    public Map<String, Object> result = new HashMap<>();

    public String toJson(){
        if(symbol == null)
            result.put("channel", channelEnum.getType());
        else
            result.put("channel", symbol + "_" + channelEnum.getType());

        result.put("date", System.currentTimeMillis());
        convertJson();
        return JSONObject.toJSONString(result);
    }

    public abstract void convertJson();

    public ChannelEnum getChannelEnum() {
        return channelEnum;
    }

    public void setChannelEnum(ChannelEnum channelEnum) {
        this.channelEnum = channelEnum;
    }

    public String getSymbol() {
        return symbol;
    }

    public void setSymbol(String symbol) {
        this.symbol = symbol;
    }
}
public class RealTimeMessage extends NotifyMessage{

    List<RealTimeTradeDto> tradeDtoList;

    public RealTimeMessage(String symbol, List<RealTimeTradeDto> tradeLogDTOS){
        this.setChannelEnum(ChannelEnum.MSG_REALTIME);
        this.setSymbol(symbol);
        this.tradeDtoList = tradeLogDTOS;
    }
    @Override
    public void convertJson() {
        result.put("data", tradeDtoList);
    }
}

public class OrderMessage extends NotifyMessage {
    private Map<String, List<DepthDTO>> orderData;

    public OrderMessage(String symbol, Map<String, List<DepthDTO>> orderData) {
        this.setChannelEnum(ChannelEnum.MSG_ORDER);
        this.setSymbol(symbol);
        this.orderData = orderData;
    }

    @Override
    public void convertJson() {
        List<DepthDTO> buys = orderData.get(OrderType.BUY.getCode());
        List<DepthDTO> sells = orderData.get(OrderType.SELL.getCode());
        JSONArray b = new JSONArray();
        buys.stream().forEach(item -> {
            JSONArray bb = new JSONArray();
            bb.add(item.getPrice().toPlainString());
            bb.add(item.getQuantity().toPlainString());
            b.add(bb);
        });
        result.put("b", b);
        JSONArray s = new JSONArray();
        sells.stream().forEach(item -> {
            JSONArray ss = new JSONArray();
            ss.add(item.getPrice().toPlainString());
            ss.add(item.getQuantity().toPlainString());
            s.add(ss);
        });
        result.put("s", s);
    }
}
 AllTickerMessage allTickerMessage = new AllTickerMessage(marketTickers);
            //推送所有行情
            WSData.getInstance().pushClientMsg(allTickerMessage);

标签:JSONArray,symbol,channelEnum,result,put,抽象类,public
From: https://www.cnblogs.com/youkiko/p/18050818

相关文章

  • C++ 接口(抽象类) 虚函数
    接口描述了类的行为和功能,而不需要完成类的特定实现。C++接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。纯虚函数是通过在声明中使用"=0"来指定的clas......
  • Java面向对象之接口和抽象类的区别一目了然
    介绍相信对于Java面向对象部分,很多人很长一段时间对于接口和抽象类的区别,使用场景都不是很熟悉,同是作为抽象层重要的对象,工作中到底什么情况下使用抽象类,不是很清楚。本文就一次性把这些概念一次性说清楚,不用再烦恼了,哈哈!核心概念接口与抽象类最明显的区别可能就是使用上的......
  • 类变量和类方法、代码块、单例设计模式、final关键字、抽象类、接口、内部类
    类变量和类方法类变量-提出问题说:有一群小孩在玩堆雪人,不时有新的小孩加入,请问如何知道现在共有多少人在玩?,编写程序解决。传统的方法来解决思路在main方法中定义一个变量count当一个小孩加入游戏后count++,最后个count就记录有多少小孩玩游戏小孩是一个类,有名字属......
  • 3-4. 有限状态机&抽象类多态
    创建有限状态机基类实现有限状态机野猪巡逻状态继承BaseState,将原来Enemy的Update里面的一部分移动到LogicUpdate里面使用有限状态机定义状态定义巡逻状态、追逐状态、当前状态Enable进入巡逻状态Disable退出当前状态Update调用状态机的逻辑更新Awake......
  • 刘铁猛C#学习笔记19 抽象类、接口与SOLID五大原则
    接口与抽象类是所有高阶面向对象的起点,是学习设计模式的前置条件必须有实践基础之后,才能真正掌握算法、设计模式 设计模式的基础solid五大设计原则(待续)1.单一职责原则singleresponsibilityprinciple2.开放-关闭原则Open-closeprinciple,简称为开闭原则“封装确定的,......
  • 接口——比抽象类更加抽象类的类
    1什么是接口2使用细节3实现接口VS继承类4接口的多态(父类引用指向子类对象)......
  • 抽象类(含有抽象方法(未实现的方法)的类)
    1什么是抽象类2抽象类的使用细节3思考题......
  • 【C#】抽象类、密封类、静态类的概念
    一、什么是抽象类含义:抽象类就是指设计为被继承的类,抽象类只能被用作其他类的基类。要点:抽象类使用abstract修饰符声明抽象类不能被创建实例。抽象类可以包含抽象成员或普通的非抽象成员。(抽象成员下面会进行说明)抽象类可以继承另一个抽象类任何派生自抽象类的类必须使用ove......
  • 【C#】基础类、结构、抽象类、接口的相关概念
    先来简单说一下他们各自的含义是什么: 1.类(class):类类型是由字段数据(成员变量)和操作字段数据的成员(属性、方法、构造函数、事件等)所构成的自定义类型。其中字段数据表示类实例(对象)的状态。2.结构(struct):C#中结构类型和类类型在语法上非常相似,他们都是一种数据结构,都可以包括......
  • 11.Transform抽象类
    在WPF框架中有一个抽象类叫Transform,它定义了实现二维平面中的转换的功能。它包括旋转(RotateTransform)、缩放(ScaleTransform)、倾斜(SkewTransform)和平移(TranslateTransform)4个子类。它定义如何将点从一个坐标空间映射或转换到另一个坐标空间。此映射由转换Matrix来......