【实例简介】

可以实现NFC标签卡的读写操作

NFC写入工具,包括对NTAG213开启密码保护和关闭密码保护的功能

文件:url80.ctfile.com/f/25127180-740793371-680369?p=551685 (访问密码: 551685)


一、装饰器模式

在软件开发过程中,由于需求的改动,可能面临对某个或某些对象新增一些新的功能的需求。根据开闭原则,新增功能我们也不能直接去修改

原有的类,而如果使用继承的方式去实现,可能出现“子类爆炸”的问题,这个时候就可以使用到 装饰器模式。

装饰器模式:允许向一个现有的对象添加新的功能,同时又不改变这个现有对象的结构。属于结构型设计模式,它是作为现有类的一种包装。

首先会创建一个装饰类,用来包装原有的类,并在保持类的完整性的前提下,提供额外的功能。

1.首先创建一个User类

public class User
{
public string UserName{get;set;}
public string Password{get;set;}
}

2.创建一个用户服务接口IUserService,里面有一个RegisterUser方法用来注册一个用户

public interface IUserService
{
void RegisterUser(User user);
}
3.创建一个类实现IUserService接口

复制代码
public class UserService:IUserService
{
public void RegisterUser(User user)
{
Console.WriteLine($“{user.UserName}注册成功”);
}
}
复制代码
4.在控制台Main方法中调用

复制代码
class Program
{
static void Main(string[] args)
{
IUserService service = new UserService();
var user = new User(“jyq”, “123456”);
service.RegisterUser(user);
Console.ReadKey();
}
}
复制代码
  运行结果:

5.现在要新增一个需求,要求在注册成功之后打印日志。这时我们再创建一个装饰器类:UserDecorator

复制代码
public class UserDecorator : IUserService
{
private readonly IUserService _userService;

    public UserDecorator(IUserService userService){_userService = userService;}public void RegisterUser(User user){_userService.RegisterUser(user);var path = Environment.CurrentDirectory + "\\log.txt";using(var stream = new FileStream(path, FileMode.OpenOrCreate,FileAccess.Write)){string msg = $"{DateTime.UtcNow:d}:{user.UserName}注册成功";byte[] buffer = Encoding.UTF8.GetBytes(msg);stream.Write(buffer, 0, buffer.Length);stream.Close();}}
}

复制代码
6.在Main函数中调用就变成了这样

复制代码
class Program
{
static void Main(string[] args)
{
IUserService service = new UserService();
var user = new User(“jyq”, “123456”);
var decorator = new UserDecorator(service);
decorator.RegisterUser(user);
Console.ReadKey();
}
}
复制代码
7.看一下执行结果

这样就通过装饰器模式在不改变原有对象结构的前提下实现了新的需求功能。

9.结束

以上就是本次的全部内容,通过一个简单的案例讲解了一下装饰器模式。如有不同见解,可以评论一起探讨。

NFC读写(android代码)相关推荐

  1. Android之NFC读写操作

    上次记录NFC知识时,还处在研究状态,现在项目的第一阶段开发已经完成.上篇Android之NFC开发,简单介绍了一些知识,也是对未知信息的研究,总要了解一点来龙去脉,省的心发慌.这篇文章总结自己的项目 ...

  2. Android开发NFC读写数据

    1.权限<uses-permission android:name="android.permission.NFC"/><uses-feature android ...

  3. android中NFC读写功能的实现方法

    这篇文章主要为大家详细介绍了android中NFC读写功能的实现方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了android中NFC读写功能的 ...

  4. Android NFC 读写示例

    自己新浪博客转移 在Android NFC 应用中,Android手机通常是作为通信中的发起者,也就是作为各种NFC卡的读写器.Android对NFC的支持主要在 android.nfc 和andro ...

  5. android usb读写,安卓(Android)下如何开发USB NFC读写器app

    对安卓工程师来说,在安卓下使用USB设备需要了解很多硬件的内容,这可能会导致工程周期的延长或者app的不稳定.为了将这种风险降到最低,友我科技发布了NFC读写器在安卓下的sdk,使用NFC读写器的类接 ...

  6. matlab画扇区,NFCDemo NFC读写测试 ,自动读取每个扇区 块的值 matlab 238万源代码下载- www.pudn.com...

    文件名称: NFCDemo下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 66 KB 上传时间: 2013-12-13 下载次数: 24 提 供 者: wuze ...

  7. android nfc后台,android NFC开发简单入门

    前言: 说道NFC,是Near Field Communication缩写,就是近距离无线通讯技术.NFC采用主动和被动两种通信模式,工作的模式有三种,读写标签,点对点,仿真卡模式,今天我们只是简单的 ...

  8. 【NFC】Android NFC API Reference中英文

    SkySeraph 博客园 首页 新随笔 联系 订阅 管理 随笔- 192  文章- 0  评论- 441  [NFC]Android NFC API Reference中英文 [NFC]Androi ...

  9. NDK JNI方式读写Android系统的demo(二)

    NDK & JNI(方式读写Android系统的Demo) 大家都知道Android系统是一种基于Linux的自由及开放源码的操作系统,所以读写GPIO也可以直接用Linux那一套export ...

  10. android 代码设置密码,android-如何在MIFARE Ultralight EV1标签上设置和取消设置密码?...

    我想使用NfcA在MIFARE Ultralight EV1(MFOUL21)标签上设置和取消设置密码保护吗? Android上的标签技术. 我知道我会为此使用nfcA.transceive()方法, ...

最新文章

  1. h计算机二级基础知识题库,计算机二级考试试题
  2. atoi实现(考虑足够多种的情况)c++
  3. 电为啥要分交流、直流?
  4. Autofac 之 基于 Castle DynamicProxy2 的 Interceptor 功能
  5. 《Python Cookbook 3rd》笔记(3.16):结合时区的日期操作
  6. Node.js 应用故障排查手册 —— 利用 CPU 分析调优吞吐量
  7. 奇怪的顾客(C++)
  8. PostgreSQL中的执行计划
  9. 功能至上!国内外最实用的协作类软件盘点
  10. 分支限界算法c语言_算法学习计划
  11. java 二进制置位,重置
  12. SQL2005备份如何在SQL2000上还原
  13. 基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(v6.6.6版)
  14. 如何给三线表格(图片)添加标题?
  15. 【自动驾驶】KITTI Road Detection Benchmark Devkit_road使用
  16. 刷百度权重的方法!!刷百度权重不为人知的内幕!慎用!
  17. option设置selected
  18. 环境保护设施运营组织服务认证
  19. 服务器都没有显卡型号吗,云服务器都没显卡么?
  20. 沃趣陈栋ORACLE认证,QData-Oracle-数据库一体机---沃趣科技.pdf

热门文章

  1. Spotify for Mac(音乐播放器)中文版永久使用教程
  2. python代码做图_超好看的弦图,Python一行代码就能做
  3. Github入门指南
  4. 大学物理速成《物理学简明教程》
  5. 嵌入式固件开发之二——直接操作STM32寄存器的LED点灯测试程序和仿真
  6. Muscle 进行多序列比对
  7. iOS AppStore上架流程图文详解
  8. mos管 rl_MOS管一些参数解释(转)
  9. 利用MACD指标进阶使用技巧计算交易信号
  10. 家里宽带升级为200M光纤,换千兆路由和千兆网线能实现提速吗?