当前位置: 首页 > news >正文

女朋友做网站wordpress 在线浏览

女朋友做网站,wordpress 在线浏览,产品展示网站模板源码,phpcms门户网站一、定义: 把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 二、核心角色: 目标接口Target:客户端期待的接口。 被适配者Adaptee:需要被适配的类或数…

一、定义:

        把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。

二、核心角色:

        目标接口Target:客户端期待的接口。

        被适配者Adaptee:需要被适配的类或数据源。

        适配器Adapter:将Adaptee转换成Target接口的对象。

三、简单示例:RecycleView的Adapter

1.被适配者:

// 被适配者:数据类
public class User {
    private String name;
    private int age;

    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() { return name; }
    public int getAge() { return age; }
}
2.适配器:

// 适配器:将 List<User> 转换为 RecyclerView 所需的 Adapter 接口
public class UserAdapter extends RecyclerView.Adapter<UserAdapter.UserViewHolder> {

    private List<User> userList;

    public UserAdapter(List<User> userList) {
        this.userList = userList;
    }

    // 创建 ViewHolder
    @NonNull
    @Override
    public UserViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.item_user, parent, false);
        return new UserViewHolder(view);
    }

    // 绑定数据到 ViewHolder
    @Override
    public void onBindViewHolder(@NonNull UserViewHolder holder, int position) {
        User user = userList.get(position);
        holder.bind(user);
    }

    @Override
    public int getItemCount() {
        return userList.size();
    }

    // ViewHolder 内部类
    public static class UserViewHolder extends RecyclerView.ViewHolder {
        private TextView tvName;
        private TextView tvAge;

        public UserViewHolder(@NonNull View itemView) {
            super(itemView);
            tvName = itemView.findViewById(R.id.tv_name);
            tvAge = itemView.findViewById(R.id.tv_age);
        }

        public void bind(User user) {
            tvName.setText(user.getName());
            tvAge.setText("Age: " + user.getAge());
        }
    }
}

3.使用:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        RecyclerView recyclerView = findViewById(R.id.recycler_view);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));

        // 数据源(被适配者)
        List<User> users = new ArrayList<>();
        users.add(new User("Alice", 25));
        users.add(new User("Bob", 30));

        // 设置适配器
        UserAdapter adapter = new UserAdapter(users);
        recyclerView.setAdapter(adapter);
    }
}
 

四、应用场景:

        1.列表控件数据刷新

        2.多视图类型处理

        3.第三方库兼容

五、优缺点:

优点:

        1.解耦数据与UI

        2.支持多类型试图

        3.复用现有类或第三方库

缺点:

        1.增加代码复杂度。

        2.频繁数据刷新可能会影响性能。

http://www.dtcms.com/a/541872.html

相关文章:

  • 做电影网站为什么查封不了一键打开多个wordpress
  • 游戏盾是如何保障游戏安全稳定的?
  • html5网站引导页模板巨量算数关键词查询
  • 查询网站空间商怎么查看一个网站页面的seo优化情况
  • 【普中Hi3861开发攻略--基于鸿蒙OS】-- 第 29 章 WIFI 实验-TCP 通信
  • 合肥建设工程招聘信息网站成都高校网站建设服务公司
  • Linux 线程的同步与互斥机制及应用
  • wap网站制作公司网站建设 doc
  • 强化学习和最优控制有什么关系?
  • 示范专业网站建设如何建立像淘宝一样的网站
  • LeetCode 刷题【136. 只出现一次的数字、137. 只出现一次的数字 II】
  • 信宜手机网站建设公司免费的wordpress账号
  • 6 个 Docker 高级功能
  • AGENT 和自动化工作流的区別
  • 【计算机软件资格考试】软考案例分析题及解析模拟题9
  • 描述一下网站建设的基本流程深圳建设网站费用
  • 长沙网站设计服务商上海网站建设科技公司
  • Langchain从零开始到应用落地案例[AI智能助手]【5】---实现基于FastAPI+Langchain+ocr实现上下文对话大模型对话接口
  • 手机微网站与微官网苏州绿叶网站建设
  • 【研究生随笔】Pytorch中的卷积神经网络(2)
  • 宁波百度做网站的公司哪家好泰州专业做网站公司
  • 【AES加密】AES加密算法实现(附代码):1 AES头文件的书写
  • Linux入门2(1/3)
  • 哪个网站可以做条形码毛坯房最便宜装修方法
  • 北京塞车网站建设wordpress安装到万网
  • 包头企业做网站能免费建网站吗
  • C++ 字符串型
  • ELK运维之路(定时清理索引)
  • 行业协会网站模板网站按天扣费优化推广
  • 网站开发提高加载速度网站备案服务内容