自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(268)
  • 资源 (13)
  • 收藏
  • 关注

原创 访问者模式(Visitor Pattern)

访问者模式是处理复杂对象结构操作的强大工具,特别适合需要在不修改结构的情况下添加新操作的场景。正确实现可以显著提高系统的扩展性和维护性。

2025-04-29 00:15:59 127

原创 模板方法模式(Template Method Pattern)

定义了模板方法,该方法包含了算法的骨架,规定了步骤的执行顺序。声明了一些抽象方法,这些方法是算法中的具体步骤,由子类实现。也可以包含一些具体方法,这些方法是算法中通用的步骤,子类可以直接使用。模板方法模式是框架设计的基石,特别适合定义操作流程固定但某些步骤可变的场景。正确使用可以实现最大化的代码复用和灵活扩展。

2025-04-28 23:40:57 113

原创 策略模式(Strategy Pattern)

策略模式是处理算法变化的强大工具,特别适合需要灵活切换算法的场景。正确实现可以产生更清晰、更易维护的代码结构。

2025-04-28 23:15:16 107

原创 状态模式 (State Pattern)

解耦价值将与特定状态相关的行为局部化消除庞大的条件判断语句使状态转换显式化扩展性容易添加新状态状态转换逻辑清晰符合开闭原则状态模式是处理复杂状态机的强大工具,特别适合行为随状态变化而显著不同的场景。正确实现可以产生更清晰、更易维护的状态管理代码。

2025-04-28 22:41:28 315

原创 观察者模式 (Observer Pattern)

观察者模式是解耦对象间依赖关系的经典解决方案,广泛应用于事件处理系统、用户界面框架和分布式系统中。正确实现可以构建灵活、可扩展的通知机制。

2025-04-26 16:19:45 221

原创 备忘录模式 (Memento Pattern)

备忘录模式是处理对象状态保存和恢复的优雅解决方案,特别适合需要实现撤销机制或状态回滚的场景。正确使用可以在保持良好封装性的同时,提供灵活的状态管理能力。

2025-04-26 15:33:27 87

原创 中介者模式(Mediator Pattern)

中介者模式是处理复杂交互关系的利器,但需要谨慎设计以避免中介者过度膨胀。正确应用可以显著降低系统耦合度,提高模块化程度。

2025-04-18 00:01:12 573

原创 迭代器模式(Iterator Pattern)

迭代器模式通过将集合对象的遍历行为抽象为独立的迭代器,实现了数据存储与遍历算法的解耦,让客户端无需了解集合内部结构即可统一访问元素。该模式提供了灵活的多维度遍历支持,同时为不同集合类型建立了统一的访问接口,有效提升了代码的可维护性和扩展性。

2025-04-17 22:59:09 141

原创 解释器模式(Interpreter Pattern)

interpret解释器模式为特定语言提供了一种灵活的解释执行机制,特别适合处理简单语言的解释问题。虽然对于复杂文法可能不是最佳选择,但在适当的场景下,它能够提供清晰、可扩展的解决方案。

2025-04-17 00:37:35 50

原创 命令模式 (Command Pattern)

命令模式是一种强大的行为设计模式,它将请求封装为对象,从而支持请求的排队、日志记录、撤销/重做等高级功能。该模式特别适用于需要解耦请求发送者和接收者,或需要支持复杂操作管理的场景。

2025-04-16 23:29:21 381

原创 责任链模式(Chain of Responsibility Pattern)

责任链模式是一种强大的行为设计模式,它通过将多个处理者连接成链来解耦请求发送者和接收者。该模式特别适用于需要动态确定请求处理者的场景,如审批流程、事件处理等。

2025-04-16 22:41:03 473

原创 代理模式(Proxy Pattern)

代理模式通过引入代理对象,为客户端和目标对象之间提供了一个中间层,使得客户端可以在不改变目标对象的前提下,对目标对象的访问进行控制和扩展。在实际项目中,当需要对对象的访问进行控制、增强或扩展时,应考虑使用代理模式。同时,要根据具体的业务需求和场景,选择合适的代理类型,如远程代理、虚拟代理、保护代理等。

2025-04-06 16:10:20 39

原创 享元模式(Flyweight Pattern)

享元模式通过共享对象的内部状态,有效地减少了系统中对象的数量,从而节省了内存和提高了性能。在实际项目中,当遇到大量相似对象且这些对象的部分状态可以共享时,应考虑使用享元模式。但同时也需要注意,使用享元模式会增加系统的复杂性,需要合理设计内部状态和外部状态,确保共享对象的正确性和线程安全性。

2025-03-24 23:10:20 134

原创 外观模式 (Facade Pattern)

外观模式通过提供一个统一的高层接口,简化了复杂子系统的使用,降低了客户端与子系统之间的耦合度。在实际项目中,当遇到需要简化复杂系统使用或分层架构设计时,应优先考虑使用外观模式。根据具体的业务需求和系统架构,合理运用外观模式,确保代码的可维护性和可扩展性。

2025-03-24 22:25:50 231

原创 装饰器模式 (Decorator Pattern)

装饰器模式是一种常用的设计模式,它可以动态地给一个对象添加一些额外的职责,从而提高代码的灵活性、可读性和可维护性。在实际开发中,需要根据具体需求选择合适的实现方式。

2025-03-23 21:16:10 268

原创 组合模式 (Composite Pattern)

组合模式是一种常用的设计模式,它可以将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性,从而提高代码的灵活性、可读性和可维护性。在实际开发中,需要根据具体需求选择合适的实现方式。

2025-03-23 14:57:05 160

原创 桥接模式 (Bridge Pattern)

桥接模式是一种常用的设计模式,它可以将抽象部分与实现部分分离,使它们可以独立变化,从而提高代码的灵活性、可读性和可维护性。为处理多维度变化的系统提供了一种优雅的解决方案。在实际开发中,当遇到需要处理多个独立变化维度的场景时,应优先考虑使用桥接模式。

2025-03-22 23:30:42 161

原创 适配器模式 (Adapter Pattern)

适配器模式是一种常用的设计模式,它可以将一个类的接口转换成客户希望的另外一个接口,从而提高代码的灵活性、可读性和可维护性。在实际项目中,当遇到需要整合不同接口的类或库时,应优先考虑使用适配器模式。同时,要根据具体的业务需求和场景,合理选择类适配器、对象适配器或接口适配器,以达到最好的效果。

2025-03-22 18:31:03 319

原创 原型模式 (Prototype Pattern)

原型模式为对象创建提供了一种高效的方式,通过复制现有对象状态来创建新对象,避免了复杂的初始化过程。在实际开发中,当面临创建复杂对象或需频繁创建相似对象的场景时,可考虑使用原型模式。同时,应根据具体业务需求和系统架构,合理选择原型模式与其他创建型设计模式,以优化系统性能和代码结构。

2025-03-22 17:29:24 302

原创 建造者模式 (Builder Pattern)

建造者模式是一种常用的设计模式,它可以将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。在实际开发中,需要根据具体需求选择合适的实现方式。

2025-03-22 15:09:04 167

原创 抽象工厂模式 (Abstract Factory Pattern)

抽象工厂模式通过将对象的创建和使用进一步分离,为创建一系列相关或相互依赖的对象提供了一种优雅的解决方案。它在提高系统的可扩展性和可维护性方面具有显著优势,但同时也增加了系统的复杂性。在实际开发中,需要根据具体的业务需求和系统架构来权衡是否使用抽象工厂模式。如果系统中存在多个产品族,并且产品之间存在复杂的依赖关系,那么抽象工厂模式是一个很好的选择。

2025-03-16 17:35:29 204

原创 工厂方法模式 (Factory Method Pattern)

工厂方法模式是一种强大的创建型设计模式,它将对象的创建逻辑封装在工厂类中,使得代码更加灵活和易于维护。通过合理运用工厂方法模式,可以有效提高软件系统的可扩展性和可维护性,降低代码的耦合度。

2025-03-15 20:54:39 554

原创 单例模式 (Singleton Pattern)

单例模式是一种常用的设计模式,但需要注意线程安全、序列化与反序列化、反射攻击等问题。在实际开发中,需要根据具体需求选择合适的实现方式。

2025-03-15 17:03:06 777

转载 CoreML 与Vision

本文环境为Swift4和iOS11.4参考文章1,参考文章2CoreMLCoreML是苹果在WWDC2017 新发布的Framework,方便了Machine Learning在苹果自家平台的接接入与使用,同时苹果提供了Python的coremltools,方便将各大开源模型训练工具的现有模型转化为MLModel。VisionVision是一个新的,强大的,易于使用的框架,是苹果于WWDC 2017上针对CoreML使用所提出的新Framework,能快速有效的用于面部检测、面部特征...

2021-06-19 23:29:36 439

转载 用机器学习来驱动一个iOS应用:如何开始使用Create ML和Core ML

转:https://zhuanlan.zhihu.com/p/90919163本文中提到的所有资源都可以从这里下载:GitHub repository机器学习目前是科技行业最热门的话题之一。能够将以前依赖人工操作的任务自动化,为许多创新和令人兴奋的可能性打开了大门。由于机器学习算法需要相当大的计算能力,过去它们只能在强大的后端实现。但是,随着手持设备嵌入了越来越强大的中央处理器(cpu),在这些设备上实现机器学习开始成为一个可行的选择。智能手机制造商抓住了这个机会。他们开始定期发布工具,使开发人

2021-06-19 11:50:26 578

原创 逆向学习 - class-dump

一、class-dump1. class-dump是用来dump目标文件的类信息的工具。它利用Objective-C语言的runtime的特性,将存储在mach-O文件中的classes、categories和protocols信息提取出来,并生成对应的.h文件2. git: https://github.com/nygard/class-dump二、源码分析1. 读取文件1.1 ...

2019-06-10 12:33:40 1095 1

原创 Mach-O 学习

学习逆向,掌握Mach-O 结构和原理必不可少,这方面的资料还是很多,把学习到的简单记录如下:1. iOS逆向学习笔记之--Mach-O文件结构介绍了Mach header 和 Load Commands;https://blog.youkuaiyun.com/wj610671226/article/details/825627642.class-dump 分析类方法名称的原理介绍从Data 模...

2019-04-06 20:05:17 298

原创 iOS 逆向工具 - restore-symbol

iOS应用在上线前都会裁去符号表,以避免被逆向分析,restore-symbol 便是用于恢复符号表的利器。符号表原理:https://blog.youkuaiyun.com/sharpyl/article/details/88610991git:https://github.com/tobefuturer/restore-symbol1.下载源码编译git clone --recursive ht...

2019-03-20 17:02:04 1577

转载 fishhook原理

fishhook是Facebook提供的一个动态修改链接mach-O文件的工具。利用MachO文件加载原理,通过修改懒加载和非懒加载两个表的指针达到C函数HOOK的目的。前提在分析fishhook原理前,我们先来想两个问题:1. Mach-O文件是被谁加载的?我们知道,在程序启动的时候 Mach-O 文件会被 DYLD (动态加载器)加载进内存。加载完 Mach-O 后,DYLD接着会...

2019-03-17 02:57:25 1482

转载 iOS-符号表恢复&逆向支付宝

转:https://blog.youkuaiyun.com/MinggeQingchun/article/details/80070534前言符号表历来是逆向工程中的“必争之地”,而iOS应用在上线前都会裁去符号表,以避免被逆向分析。本文会介绍一个自己写的工具,用于恢复iOS应用的符号表。直接看效果,支付宝恢复符号表后的样子:文章有点长,请耐心看到最后,亮点在最后。为什么要恢复符号...

2019-03-17 00:23:00 376

原创 iOS 逆向工具 - IDA

1. IDA简介逆向工程中神器之一!2. IDA加载文件打开IDA,直接将可执行文件拖到app里即可;3. IDA窗口功能a. Function Window. 展现分析出来的所有函数;双击函数,Main window 显示函数体;. Class-dump 导出的都是OC函数,可读性高;IDA还将所有subroutine罗列出来;subroutine的名称是一个代号,分析难度大。...

2019-03-03 15:39:14 1582

原创 iOS 逆向工具 - OpenSSH

OpenSSh 会在iOS上安装 SSH 服务。常用命令:1. ssh user@iOSIP用于远程登录例:ssh mobile@192.168.1.12. scp /path/local user@iOSIP:/path/remote 或 scp user@iOSIP:/path/remove /path/local本地、iOS之间文件拷贝例:scp ~/1.png roo...

2019-03-03 15:36:06 424

转载 理解和分析App崩溃报告(译)

转:https://www.jianshu.com/p/574a5a6d00c5Apple Develop官方原文:Understanding and Analyzing Application Crash Reports简介当一个应用程序崩溃, 会产生一个崩溃报告(crash report) ,并存储到那个设备。崩溃报告描述了应用程序崩溃的条件,大多数情况会包含每个执行线程的一个完整...

2019-03-01 21:05:56 2880

原创 iOS 逆向工具 - Reveal

Reveal 是一款UI分析工具,非常强大。下面介绍如何安装。1. 安装Reveal2LoaderCydia 搜索安装即可。2. 配置Reveal2Loader设置 - Reveal - 打开要调试的app3. 安装Reveal官方下载Reveal17;(https://revealapp.com/download/)下载Patcher17,把Reveal17拖到Patcher...

2018-11-03 00:19:03 681 1

原创 iOS 逆向工具 - Theos

一、安装和配置Theos是一个越狱开发工具包,Logos语法。1. 指定安装路径export THEOS=/opt/theos2. 从github下载sudo git clone --recursive git://github.com/DHowett/theos.git $THEOS3. 配置ldid. 用来签名iOS可执行文件的工具,用以在越狱iOS中取代Xcode自带的c...

2018-10-14 21:48:18 458

原创 iOS 9.3.5 越狱

1. 下载impactor;地址:https://cydia.ooo/cydia-impactor/2. 下载Phoenix.ipa;3. 运行impactor ,安装Phoenix.ipa 到手机上;4. 运行Phoenix. 点击prepare for jailbreak. 然后点Accept. 接着点击Dismiss. 点击下面的Proceed with jai...

2018-10-13 17:24:03 5713 2

原创 iOS 逆向工具 - class-dump

利用oc的runtime特性,将存储在Mach-O文件中的头文件信息提取出来,并生成对应.h文件。1. 定位App 可执行文件a. 进入app 目录;b. plutil -p Info.plist | grep CFBundleExecutable2. class-dump 可执行文件,生成头文件class-dump -S -s -H testApp -o /path/headers...

2018-10-13 11:39:52 191

原创 iOS 逆向常见问题

1. IDA 在 mojave macOS crash     (2018-10-12)解决:下载工程中的libqcocoa.dylib 替换/Applications/IDA Pro 7.0/ida.app/Contents/PlugIns/platforms/libqcocoa.dylib。git: https://github.com/fjh658/IDA7.0_SP2. /usr/...

2018-10-12 23:04:10 957

原创 iOS 逆向-基础知识

一、汇编1.iOS arm64汇编中寄存器和基本指令https://blog.youkuaiyun.com/u012581760/article/details/80182494二、了解逆向1. iOS 逆向 - 微信 helloWorldhttps://www.jianshu.com/p/04495a429324三、工具包括:a.逆向检测工具:Reveal, snoop-it,...

2018-09-29 15:40:36 547

原创 xcodebuild 打包

1. 工程设置为手动签名2. plist 中添加:   provisioningProfiles   Dictionary       $buildleID    String  profile name   method          String   $method   其中:$buildleID 为app Bundle Identifier        $method 包含四种,a...

2018-02-08 21:21:19 447

C++ Primer 第5版

C++ Primer 第5版 非常棒的偶,新手必看!新手必看!新手必看!新手必看!新手必看!新手必看!新手必看!新手必看!新手必看!新手必看!新手必看!

2020-11-18

深入理解C++11:C++11新特性解析与应用

深入理解C++11:C++11新特性解析与应用 深入理解C++11:C++11新特性解析与应用 深入理解C++11:C++11新特性解析与应用

2020-11-18

3D游戏开发步步高系列课程(4)

3D游戏开发步步高系列课程(4):碰撞

2008-01-07

Visual C++游戏编程

Visual C++游戏编程

2007-08-13

iOS 5核心框架

iOS 5核心框架

2016-07-01

3D游戏开发步步高系列课程(2

3D游戏开发步步高系列课程(2)_3D引擎

2008-01-07

Visual C++游戏编程2

3D 游戏开发,支持。 原代码!

2007-08-13

3D游戏开发步步高系列课程(3

3D游戏开发步步高系列课程(3):背景

2008-01-07

3D游戏开发步步高系列课程(5

3D游戏开发步步高系列课程(5):人工

2008-01-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除