adapter

c++ 结构型模式-适配器(Adapter)

ⅰ亾dé卋堺 提交于 2020-01-23 19:31:35
1) 意图: 将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 2) 结构: 适配器两种结构,一种继承实现,一种组合实现   a. 继承方式:    b. 组合方式:    其中: Target 定义 Client 使用的与特定领域相关的接口 Client 与符合 Target 接口的对象协同 Adaptee 定义一个已经存在的接口,这个接口需要适配 Adapter 对 Adaptee 的接口与 Target 接口进行适配 3) 适用性: 想使用一个类,但是它的接口不符合要求 想创建一个可以用的类,该类可以和其他不相关的类或不可预见的类协同工作 想使用一个已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口 4) 举例:   a. 继承方式:    1 #include <iostream> 2 class Target 3 { 4 public: 5 Target() {} 6 virtual ~Target() {} 7 virtual std::string Request() = 0; 8 }; 9 10 class Adaptee 11 { 12 public: 13 Adaptee() {} 14 virtual ~Adaptee() {} 15 void SpecificRequest(std:

设计模式与3D游戏编程

不想你离开。 提交于 2020-01-22 17:01:32
设计模式与3D游戏编程 前言 这是中山大学数据科学与计算机学院2019年3D游戏编程与设计的约稿博客,主要是总结课程一个学期以来学习的设计模式以及将其用于Unity3D编程的个人经验。 所有项目与代码已上传至github当中,欢迎大家访问。 github个人主页: https://starashzero.github.io 3D游戏编程与设计主页: https://starashzero.github.io/3DGameDesign 会用到哪些设计模式? 存在的设计模式有很多,推荐大家阅读Alan Shalloway、 James R. Trott编写的 Design Patterns Explained ,该书也有中文版《设计模式解析》。 该书内容深入浅出,没有太多复杂的概念,有的话作者基本也会耐心的解释,很适合初学者进行学习。 接下来我主要是总结一些课程中涉及到的设计模式、以及虽然课程中没提到但是游戏编程中使用到了的模式和使用场景举例 Composite Pattern——组合模式 组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。

计算机网络课程设计

五迷三道 提交于 2020-01-22 15:28:35
一、课程的目的和任务 本课程要求学生在"计算机网络原理"理论学习基础上,验证和加深对计算机网络概念的理解。通过本课程的实践,培养学生独立思考、综合分析和动手实践的能力。 通过本课程的学习,达到如下目标: 理解计算机网络体系结构和工作原理,掌握常用的网络命令,能够对命令的功能进行解释,分析命令执行结果,得到合理有效结论。 掌握Packet Tracer软件的操作方法,能够使用该软件模拟组网、配置交换机、路由器,能够按照实验方案实施仿真实验,采集和整理数据。 具备网络编程能力,能够设计抓包程序获取数据包,结合相关协议对数据包各个字段的含义进行分析、处理和解释,获取有效结论。 二、课程的基本内容和要求 2.1实验理论 常用网络命令的工作原理及协议 ARP的原理 ICMP协议及原理 telnet远程登录的原理 IP报文格式及路由转发 以太网CSMA/CD协议原理 透明网桥、以太网交换机 虚拟局域网VLAN 路由器的作用、静态路由、动态路由 IP报文格式及IP协议 Socket网络编程 2.2实验内容 1.常用网络命令 ①ipconfig命令 ipconfig命令显示当前所有的TCP/IP配置值、刷新动态主机配置协议(DHCP)和域名系统(DNS)设置。具体用法如下: ipconfig [/allcompartments] [/? | /all | /renew [adapter] |

List view with simple cursor adapter items checked are un-checked during scroll

给你一囗甜甜゛ 提交于 2020-01-21 21:21:45
问题 I have problem that I couldn't find answer on SO - all problems solved on SO where about too much different issue and didn't work. Problem is - 1. Clicked rows in ListView (after click they are marked with blue coolor background, and checked box) loose their marks of beeing clicked (checked checkbox and color) after scrolling. 2. Even more - other rows are marked during scroll even that are not clicked. ListView is bound to my Custom Simple Cursor Adapter which gets data from SQLite database.

ssm2602 I2C Linux 驱动

对着背影说爱祢 提交于 2020-01-21 08:11:31
下面是驱动程序: /* * 这是一个注册 I2C 字符设备 * I2C 设备的 read/write 函数不实用,这里先写一下初始化与显示的函数 * ioctl LIST_REGS GET_REG INIT_REG SETMODE */ #include < linux / module.h > #include < linux / init.h > #include < linux / slab.h > #include < linux / i2c.h > #include < linux / string .h > #include < linux / rtc.h > /* get the user-level API */ #include < linux / bcd.h > #include < linux / list.h > #include < linux / types.h > // #include "i2c-dev.h" #define SSM2602_SETMODE 0x1 #define SSM2602_LISTREGS 0x2 #define SSM2602_MAJOR 250 #define SSM2602_ADDRESS 0x1a /* struct i2c_msg { __u16 addr; __u16 flags; __u16 len; __u8

Linux中IIC总线驱动分析

断了今生、忘了曾经 提交于 2020-01-21 07:26:01
虽然I2C硬件体系结构比较简单,但是I2C体系结构在Linux中的实现却相当复杂.通过阐述Linux系统中I2C总线体系结构,在此基础上完成嵌入式Linux系统中I2C总线驱动的开发. 1. 嵌入式Linux中I2C驱动程序分析 I2C(Inter2IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备.嵌入式系统中,微控制器通过I2C总线可随时可对各个系统中的组件进行设置和查询,以管理系统的配置或掌握组件的功能状态来控制外围设备.I2C总线因为协议成熟,引脚简单,传输速率高,支持的芯片多,并且有利于实现电路的标准化和模块化,得到了包括Linux在内的很多操作系统的支持,受到开发者的青睐.在Linux环境下使用I2C总线协议,需要理解Linux的I2C总线驱动的体系结构,在此基础上来进行嵌入式驱动程序和应用程序的开发. 1.1 Linux的I2C驱动框架 Linux内核的I2C总线驱动程序框架如图1所示: Linux的I2C体系结构分为3个组成部分: I2C核心:I2C核心提供了I2C总线驱动和设备驱动的注册,注销方法,I2C通信方法(即"al2gorithm")上层的,与具体适配器无关的代码以及探测设备,检测设备地址的上层代码等.这部分是与平台无关的

乾坤合一~Linux设备驱动之I2C核心、总线以及设备驱动

和自甴很熟 提交于 2020-01-21 06:11:53
我思念的城市已是黄昏 为何我总对你一往情深 曾经给我快乐 也给我创伤 曾经给我希望 也给我绝望 我在遥远的城市 陌生的人群 感觉着你遥远的忧伤 我的幻想 你的忧伤,像我的的绝望,那样漫长,,,,,这是今天的旋律,直入心底~~~~~~~~~~~~~~~~   在Linux 系统中,I2C 驱动由3 部分组成,即I2C 核心、I2C 总线驱动和I2C 设备驱动,I2C 总线仅仅使用SCL、SDA 这两根信号线就实现了设备之间的数据交互,极大地简化了对硬件资源和PCB 板布线空间的占用 1 Linux的I2C体系结构 1.1 组成部分 1) I2C核心 I2C核心提供了I2C总线驱动和设备驱动的注册、注销方法,i2C通信方法等等 2) I2C总线驱动 I2C 总线驱动主要包含了I2C 适配器数据结构i2c_adapter、I2C 适配器的algorithm数据结构i2c_algorithm 和控制I2C适配器产生通信信号的函数。是对I2C硬件体系结构中适配器端的实现适配器可由CPU 控制,甚至可以直接集成在CPU 内部。 3) I2C设备驱动 I2C 设备驱动主要包含了数据结构i2c_driver 和i2c_client ,我们需要根据具体设备实现其中的成员函数。是对I2C硬件体系结构中设备端的实现,设备一般挂接在受 CPU 控制的I2C适配器上,通过I2C 适配器与CPU 交换数据。

ViewPager PagerAdapter with cursor - CursorLoader.onLoadFinished doesnt get called with different query

匆匆过客 提交于 2020-01-20 17:41:07
问题 I am doing like a quote application that pulls the quotes from the database and I need to display quotes in a ViewPager. I have created my CursorPagerAdapter which seems to work well. public class MyCursorPagerAdapter extends PagerAdapter { private Cursor cursor; private LayoutInflater inflater; public MyCursorPagerAdapter(Context context, Cursor cursor) { Log.d(MainActivity.TAG, "MyCursorPagerAdapter.onCreate()"); this.cursor = cursor; this.inflater = (LayoutInflater) context

ViewHolder pattern correctly implemented in custom CursorAdapter?

我们两清 提交于 2020-01-19 04:50:47
问题 Here is my custom CursorAdapter: public class TasksAdapter extends CursorAdapter implements Filterable { private final Context context; public TasksAdapter(Context context, Cursor c) { super(context, c); this.context = context; } /** * @see android.widget.CursorAdapter#newView(android.content.Context, android.database.Cursor, android.view.ViewGroup) */ @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { LayoutInflater inflater = LayoutInflater.from(context); View

ViewHolder pattern correctly implemented in custom CursorAdapter?

拜拜、爱过 提交于 2020-01-19 04:50:07
问题 Here is my custom CursorAdapter: public class TasksAdapter extends CursorAdapter implements Filterable { private final Context context; public TasksAdapter(Context context, Cursor c) { super(context, c); this.context = context; } /** * @see android.widget.CursorAdapter#newView(android.content.Context, android.database.Cursor, android.view.ViewGroup) */ @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { LayoutInflater inflater = LayoutInflater.from(context); View