- 博客(152)
- 资源 (10)
- 收藏
- 关注
原创 Sqlite全面学习(三)
SQLite是一款轻型的数据库,是关系型数据库(RDBMS)管理系统,它包含在一个相对小的C库中。目前在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix/Android/IOS等等主流的操作系统,同时能够跟很多程序语言相结合。
2015-05-11 11:08:39 17106 6
原创 Sqlite全面学习(二)
SQLite是一款轻型的数据库,是关系型数据库(RDBMS)管理系统,它包含在一个相对小的C库中。目前在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix/Android/IOS等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款
2015-05-08 16:13:58 10556 2
原创 Sqlite全面学习(一)
SQLite是一款轻型的数据库,是关系型数据库(RDBMS)管理系统,它包含在一个相对小的C库中。目前在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix/Android/IOS等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款
2015-05-08 10:27:16 18323 6
原创 正则表达式基础
正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。
2015-05-07 16:49:23 13472 10
原创 设计模式(行为型)之访问者模式(Visitor Pattern)
访问者模式是一种较为复杂的行为型设计模式,它包含访问者和被访问元素两个主要组成部分,这些被访问的元素通常具有不同的类型,且不同的访问者可以对它们进行不同的访问操作。访问者模式使得用户可以在不修改现有系统的情况下扩展系统的功能,为这些不同类型的元素增加新的操作。在使用访问者模式时,被访问元素通常不是单独存在的,它们存储在一个集合中,这个集合被称为“对象结构”,访问者通过遍历对象结构实现对其中存储的元素的逐个操作。
2015-05-06 17:11:53 6133
原创 设计模式(行为型)之解释器模式(Interpreter Pattern)
访问者模式是一种较为复杂的行为型设计模式,它包含访问者和被访问元素两个主要组成部分,这些被访问的元素通常具有不同的类型,且不同的访问者可以对它们进行不同的访问操作。访问者模式使得用户可以在不修改现有系统的情况下扩展系统的功能,为这些不同类型的元素增加新的操作。在使用访问者模式时,被访问元素通常不是单独存在的,它们存储在一个集合中,这个集合被称为“对象结构”,访问者通过遍历对象结构实现对其中存储的元素的逐个操作。
2015-05-06 17:11:05 6993
原创 设计模式(行为型)之备忘录模式(Memento Pattern)
备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原,当前很多软件都提供了撤销(Undo)操作,其中就使用了备忘录模式。
2015-05-06 15:28:38 3565
原创 设计模式(行为型)之中介者模式(Mediator Pattern)
如果对象之间的联系呈现为网状结构,存在大量的多对多联系,在网状结构中,几乎每个对象都需要与其他对象发生相互作用,而这种相互作用表现为一个对象与另外一个对象的直接耦合,这将导致一个过度耦合的系统。如果在一个系统中对象之间存在多对多的相互关系,我们可以将对象之间的一些交互行为从各个对象中分离出来,并集中封装在一个中介者对象中,并由该中介者进行统一协调,这样对象之间多对多的复杂关系就转化为相对简单的一对多关系。通过引入中介
2015-05-06 14:46:25 5021 5
原创 设计模式(行为型)之职责链模式(Chain of Responsibility Pattern)
职责链可以是一条直线、一个环或者一个树形结构,最常见的职责链是直线型,即沿着一条单向的链来传递请求。链上的每一个对象都是请求处理者,职责链模式可以将请求的处理者组织成一条链,并让请求沿着链传递,由链上的处理者对请求进行相应的处理,客户端无须关心请求的处理细节以及请求的传递,只需将请求发送到链上即可,实现请求发送者和请求处理者解耦。
2015-05-06 10:42:46 5203 4
原创 设计模式(行为型)之状态模式(State Pattern)
状态模式用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。当系统中某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式。状态模式将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象状态可以灵活变化,对于客户端而言,无须关心对象状态的转换以及对象所处的当前状态,无论对于何种状态的对象,客户端都可以一致处理。
2015-05-05 15:32:56 7877
原创 设计模式(行为型)之模板方法模式(Template Method Pattern)
模板方法模式是一种基于继承的代码复用,它是一种类行为型模式;是结构最简单的行为型设计模式,在其结构中只存在父类与子类之间的继承关系。通过使用模板方法模式,可以将一些复杂流程的实现步骤封装在一系列基本方法中,在抽象父类中提供一个称之为模板方法的方法来定义这些基本方法的执行次序,而通过其子类来覆盖某些步骤,从而使得相同的算法框架可以有不同的执行结果。模板方法模式提供了一个模板方法来定义算法框架,而某些具体步骤的实现可以在
2015-05-05 14:36:18 4825 1
原创 设计模式(行为型)之命令模式(Command Pattern)
在软件开发中,我们经常需要向某些对象发送请求(调用其中的某个或某些方法),但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,此时,我们特别希望能够以一种松耦合的方式来设计软件,使得请求发送者与请求接收者能够消除彼此之间的耦合,让对象之间的调用关系更加灵活,可以灵活地指定请求接收者以及被请求的操作。命令模式为此类问题提供了一个较为完美的解决方案。命令模式可以将请求发送者和接收者完全解耦,发送者与接收者之间没有直
2015-05-05 11:49:27 4791
原创 设计模式(行为型)之策略模式(Strategy Pattern)
使用策略模式可以定义一些独立的类来封装不同的算法,每一个类封装一种具体的算法,在这里,每一个封装算法的类我们都可以称之为一种策略(Strategy),为了保证这些策略在使用时具有一致性,一般会提供一个抽象的策略类来做规则的定义,而每种算法则对应于一个具体策略类。策略模式的主要目的是将算法的定义与使用分开,将算法的定义放在专门的策略类中,每一个策略类封装了一种实现算法,使用算法的环境类针对抽象策略类进行编程,符合“依赖
2015-05-05 10:10:35 4821
原创 设计模式(行为型)之迭代器模式(Iterator Pattern)
在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为“ 同一种算法在多种集合对象上进行操作”提供了可能。使用面向对象技术将这种遍历机制抽象为“迭代器对象”为“应对变化中的集合对象”提供了一种优雅的方法。
2015-05-05 09:25:51 5525
原创 设计模式(行为型)之观察者模式(Observer Pattern)
观察者模式用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应作出反应。在观察者模式中,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间可以没有任何相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展。一个软件系统常常要求在某一个对象的状态发生变化的时候,某些其他的对象做出相应的改变。做到这一点的设计方案有很多,但是为
2015-05-04 20:46:46 11892 2
原创 设计模式(结构型)之代理模式(Proxy Pattern)
代理模式是常用的结构型设计模式之一,当无法直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象与代理对象需要实现相同的接口。根据代理模式的使用目的不同,代理模式又可以分为多种类型,例如保护代理、远程代理、虚拟代理、缓冲代理等,它们应用于不同的场合,满足用户的不同需求。
2015-05-04 18:48:24 9817
原创 设计模式(结构型)之享元模式(Flyweight Pattern)
当一个软件系统在运行时产生的对象数量太多,将导致运行代价过高,带来系统性能下降等问题。所以需要采用一个共享来避免大量拥有相同内容对象的开销。在Java中,String类型就是使用了享元模式。String对象是final类型,对象一旦创建就不可改变。在Java中字符串常量都是存在常量池中的,Java会确保一个字符串常量在常量池中只有一个拷贝。
2015-05-04 14:15:58 5057
原创 设计模式(结构型)之外观模式(Facade Pattern)
一个客户类需要和多个业务类交互,而这些业务类经常会作为整体出现,由于涉及到的类比较多,导致使用时代码较为复杂。外观模式通过引入一个新的外观类(Facade)来实现该功能,外观类为多个业务类的调用提供统一入口,简化了类与类之间的交互。如果没有外观类,那么每个客户类需要和多个业务类之间进行复杂的交互,系统的耦合度将很大。外观模式是迪米特法则的一种具体实现,通过引入一个新的外观角色可以降低原有系统的复杂度,同时降低客户类与
2015-05-04 09:29:17 3602 1
原创 设计模式(结构型)之装饰者模式(Decorator Pattern)
装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为。装饰模式是一种用于替代继承的技术,它通过一种无须定义子类的方式来给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系。在装饰模式中引入了装饰类,在装饰类中既可以调用待装饰的原有类的方法,还可以增加新的方法,以扩充原有类的功能。
2015-04-30 17:06:20 8051 1
原创 设计模式(结构型)之组合模式(Composite Pattern)
组合模式又叫做部分-整体模式,使我们在树型结构的问题中模糊简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂的元素,从而使得客户程序与复杂元素的内部结构解耦。组合模式可以优化处理递归或分级数据结构。有许多关于分级数据结构的例子,使得组合模式非常有用武之地。
2015-04-30 15:14:14 3610 2
原创 设计模式(结构型)之桥接模式(Bridge Pattern)
桥接模式是一种很实用的结构型设计模式,如果软件系统中某个类存在多个独立变化的维度,通过该模式可以将这多个维度分离出来,使他们可以独立扩展,让系统更加符合“单一职责原则”。与多层继承方案不同,它将多个独立变化的维度设计为多个独立的继承等级结构,并且在抽象层建立一个抽象关联,该关联关系类似一条连接多个独立继承结构的桥,故名桥接模式。桥接模式用一种巧妙的方式处理多层继承存在的问题,用抽象关联取代了传统的多层继承,将类之间的
2015-04-29 21:15:46 7412 5
原创 设计模式(创建型)之原型模式(Prototype Pattern)
要理解原型原型模式必须先理解Java里的浅复制和深复制。有的地方,复制也叫做克隆。Java提供这两种克隆方式。 因为Java中的提供clone()方法来实现对象的克隆,所以Prototype模式实现一下子变得很简单。
2015-04-29 11:28:21 4590 2
原创 设计模式(结构型)之适配器模式(Adapter Pattern)
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。核心概念: 将一个接口转换成客户希望的另一个接口,使接口不兼容的。
2015-04-29 10:05:18 4554 3
原创 设计模式(创建型)之建造者模式(Builder Pattern)
建造者模式将客户端与包含多个组成部分的复杂对象的创建过程分离,客户端压根不用知道复杂对象的内部组成部分与装配方式,只需要知道所需建造者的类型即可。它关注如何一步一步创建一个的复杂对象,不同的具体建造者定义了不同的创建过程,且具体建造者相互独立,增加新的建造者非常方便。
2015-04-28 16:38:56 6834 3
原创 设计模式(创建型)之单例模式(Singleton Pattern)
单例模式可能是23种设计模式中最简单的。应用也非常广泛,譬如Android中的数据库访问等操作都可以运用单例模式。核心概念: 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种对象创建型模式。
2015-04-27 16:50:05 3932 3
原创 设计模式(创建型)之抽象工厂模式(Abstract Factory Pattern)
PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!概述前面介绍了工厂方法模式通过引入工厂等级结构(实现统一的工厂接口),解决了简单工厂模式中工厂类职责太重(违背单一职责原则)的问题,但是由于工厂方法模式中的每个工厂只生产一类产品(通过实现同一个工厂接口),带来的问题就是系统中会增加大量的工厂类。问题来了。。。如何解决如
2015-04-27 16:46:16 3613 3
原创 设计模式(创建型)之工厂方法模式(Factory Method Pattern)
前面介绍了简单工厂模式,在最后代码示例部分展示的程序猿技能工厂类时提到了一个严重的问题。当FactoryCreater中需要引入新对象时需要修改源代码,这违背了“开放封闭原则”,使得具体产品与工厂类之间的耦合度高,严重影响了系统的灵活性和扩展性。
2015-04-27 16:41:51 3427 1
原创 设计模式(创建型)之简单工厂模式(Simple Factory Pattern)
PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!概述简单工厂模式(Simple Factory Pattern)又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。当你需要什么,只需要传入一个正确的参数,就可以
2015-04-27 16:35:59 4531
原创 设计模式之面向对象七大基本原则
PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!概述在运用面向对象的思想进行软件设计时,需要遵循的原则一共有7个,他们是:1. 单一职责原则(Single Responsibility Principle)每一个类应该专注于做一件事情。2. 里氏替换原则(Liskov Substitution Principle)超
2015-04-27 16:25:48 19764 3
原创 设计模式之面向对象与类基础特征概念
PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!背景知识设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模
2015-04-27 16:19:27 4622
原创 NDK-JNI实战教程(三) 从比Hello World稍复杂点儿的NDK例子说说模板
PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!【工匠若水 http://blog.csdn.net/yanbober】 阅读前一篇《NDK-JNI实战教程(二) JNI官方中文资料》 http://blog.csdn.net/yanbober/article/details/45310365第一部分概述学习JNI
2015-04-27 15:08:46 16582 12
原创 NDK-JNI实战教程(二) JNI官方中文资料
该篇文章完全引用自《JNI完全手册》完整版,用来方便查询查阅,同时作为该系列教程的基础知识。感谢原文档作者。文档所依赖的版本是比较低的,但是恰恰是低版本才能更容易上手学习。
2015-04-27 14:55:07 26421 4
原创 NDK-JNI实战教程(一) 在Android Studio运行第一个NDK程序
PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!NDK开发,其实是为了项目需要调用底层的一些C/C++的一些东西;另外就是为了效率更加高些。如果你在Eclipse+ADT下开发过NDK就能体会到要么是配置NDK还要下载Cygwin,配置Cygwin ,然后需要编译生成,相当的蛋疼。要么是直接用Eclipse开发,但是
2015-04-27 13:23:08 101407 63
转载 服务端REST与SOAP的探讨
PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!声明:闲来逛论坛看到一篇不错的文章,阅读后受益匪浅。本文从一个简单的应用场景出发,使用REST和SOAP两种不同的架构风格实现,通过对REST与SOAP Web服务具体对比,旨在帮助读者更深刻理解REST架构风格。REST简介在开始我们的正式讨论之前,让我们简单看一下R
2015-04-27 13:11:43 11993 5
转载 Android开发最佳实践
PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!声明:闲来没事逛github发现一篇Android好文与大家共享下。同时作为自己记录慢慢琢磨领悟。请尊重原作者的劳动成果。[点我进入GitHub原文](https://github.com/futurice/android-best-practices/blob/mas
2015-04-27 12:35:14 5601 2
原创 android-async-http框架库使用基础
android-async-http是专门针对Android在Apache的HttpClient基础上构建的异步http连接。所有的请求全在UI(主)线程之外执行,而callback使用了Android的Handler发送消息机制在创建它的线程中执行。
2015-04-27 11:04:33 31638 7
原创 Google Volley框架源码走读
PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!开源项目链接Volley自定义 Android Developer文档Volley主页:https://android.googlesource.com/platform/frameworks/volleyVolley仓库:git clone https://andro
2015-04-27 10:46:50 13897 10
ARKitPlusVR
2024-04-10
数据可视化平台源码和资料
2024-04-10
Json To Delphi Class Generator / JSON Data Binding Tool
2024-04-09
一个万能的刮刮乐控件 无论是UILabel、UIImageView,还是自定义视图,只要是UIView都可以用来刮
2024-04-09
核心部分由 Visual Basic 语言编写的 QQ机器人 插件SDK
2024-04-09
纸张计数显示装置-电子设计大赛
2024-04-09
基于Android的天气APP毕业设计项目
2024-04-09
Sql语句50条案例,从创建数据库入门到进阶
2024-04-08
c语言实现ini文件读写操作
2024-04-08
c++/c# network server library
2024-04-08
全国计算机二级python考试
2024-04-08
golang 后台管理系统基础功能
2024-04-08
PHP 文章集锦,浮点数搞定度运算、签名验证、单点登录、安全防御、缓存技术、RPC、Composer
2024-04-08
基于stm32的蓝牙智能小车设计
2024-04-08
蓝桥杯嵌入式近五年赛题,代码
2024-04-08
ACM模板和一些题目的代码实现
2024-04-08
python爬虫,包含大小项目
2024-04-08
在 Apple Silicon Mac 上入门汇编语言
2024-04-08
学生成绩管理系统/学生信息管理系统
2024-04-08
LInux 平台下物联网网关(多线程实现),嵌入式项目
2024-04-08
人力资源机器(程序员升职记)的Ruby算法
2024-04-08
Python学习第三方库案例源码(多个三方库)
2024-04-08
Object-C 通过 ARKit 实现的太阳系动画
2024-04-07
Java 或大数据开发者找工作必备材料
2024-04-07
SwiftLint 源码
2024-04-07
数据库设计课程设计-高校选课管理系统源码
2024-04-07
一个基于 React Native 的 Android 企业级应用
2024-04-07
rust elf format 文件解析查看器源码
2024-04-07
一个基于 Kotlin Compiler Plugin 实现的迷你方法耗时无侵入编译插件
2024-04-07
gradle-javadoc-checker-master
2024-04-07
vue3+vite+javascript+pina+ant-design-vue实现的一个pc端后台管理系统
2024-04-07
前端开发文档,涵盖系列手把手教程
2024-04-07
android LabelView 自定义各种效果的 label 控件
2024-04-07
使用peach进行模糊测试从入门到放弃全套资料,包含英文文档和中文文档
2024-04-07
使用Python的各种爬虫真实案例源码资源
2024-04-07
Ts Stream Parser
2024-04-05
一个基于纯 TypeScript + Webpack + Less 实现的迷你 web 版贪吃蛇小游戏
2024-04-05
Rust Http 1.1 协议实现,非常适合初学者的最佳实践项目
2024-04-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人