96SEO 2026-02-20 00:08 12
在读本科生一枚C/C领域新星创作者新星计划导师阿里云专家博主CSDN内容合伙人…致力于

设计模式是一种在软件设计中常见的可重用解决方案的方法。
它们是经过反复验证和证明的最佳实践可以帮助软件开发人员解决特定问题或应对常见的设计挑战。
设计模式提供了一种通用的框架有助于构建高质量、易于维护和可扩展的软件系统。
类的职责应该单一一个方法只做一件事。
职责划分清晰明了每次改动到最小的方法或类使用建议两个完全不一样的功能不应该放在一个类中一个类应该是一组相关性很高的函数、数据的封装用例网络聊天网络通信聊天应该分割为网络通信类或聊天类
对扩展开放对修改封闭使用建议对软件实体的改动最好使用拓展而非修改的方式用例超市卖货商品价格时长需要改动但不是修改原来商品的价格而是新增促销价格
通俗点讲就是只要父类能出现的地方子类就可以出现而且替换为子类也不会出现任何错误或异常在继承类时务必重写父类中所有的方法尤其需要注意父类的protected方法子类尽量不要暴露自己的public方法供外界调用使用建议子类必须完全实现父类的方法孩子可以有自己的个性。
覆盖或实现父类的方法时输入参数可以被放大输出可以缩小用例跑步运动员类会跑步子类长跑运动员会跑步且擅长长跑子类短跑运动员会跑步且擅长短跑
高层模块不应该依赖低层模块两者都应该依赖其抽象。
不可分割的原子逻辑就是低层模式原子逻辑组装成的就是高层模块模块间依赖通过抽象接口发生具体类之间不之间依赖使用建议每个类都尽量有抽象类任何类都不应该从具体类派生。
尽量不要重写基类的方法。
结合里氏替换原则使用。
用例奔驰车司机类只能开奔驰司机类给什么车就开什么车开车的人司机——依赖于抽象
尽量减少对象之间的交互从而减少类之间的耦合。
一个对象应该对其他对象有最少的了解。
对类的低耦合提出了明确的要求
只和直接的朋友交流朋友之间也是有距离的。
自己的就是自己的如果一个方法放在本类中既不增加类间关系也不产生负面影响那就放置在本类中
用例老师让班长点名老师给班长一个名单班长点完名勾选返回结果而不是班长点名老师勾选
客户端不应该依赖他不需要的接口类间的依赖关系应该建立在最小的接口上使用建议接口设计尽量精简单一但是不要对外暴露没有实际意义的接口用例修改密码不应该提供修改用户信息接口而就是单一的最小修改密码的接口
从整体上来了解六大原则可以简要的概括为一句话用抽象构建框架用实现拓展细节。
具体到每一条设计原则则对应一条注意事项
单一职责原则告诉我们实现类要职责单一里氏替换原则告诉我们不要破坏继承体系依赖倒置原则告诉我们要面向接口编程接口隔离原则告诉我们在设计接口时要降低耦合开闭原则是总纲告诉我们要对拓展开放对修改关闭
一个类只能创建⼀个对象即单例模式该设计模式可以保证系统中该类只有一个实例并提供⼀个访问它的全局访问点该实例被所有程序模块共享。
比如在某个服务器程序中该服务器的配置信息存放在一个文件中这些配置数据由⼀个单例对象统一读取然后服务进程中的其他对象再通过这个单例对象获取这些配置信息这种方式简化了在复杂环境下的配置管理。
程序启动时就会创建一个唯一的实例对象。
因为单例对象已经确定所以比较适用于多线程环境中多线程获取单例对象不需要加锁可以有效的避免资源竞争提高性能。
Singleton::getInstance().getData()
第一次要使用单例对象的时候创建实例对象。
如果单例对象构造特别耗时或者耗费资源加载插件、加载网络资源等可以选择懒汉模式在第一次使用的时候才创建对象。
工厂模式是一种创建型设计模式它提供了一种创建对象的最佳方式。
在工厂模式中我们创建对象时不会对上层暴露创建逻辑而是通过使用一个共同结构来指向新创建的对象以此实现创建与使用的分离。
简单工厂模式实现由一个工厂对象通过类型来决定创建出来指定产品类的实例。
假设有个工厂能生产出水果当客户生产水果的时候明确告诉工厂生产哪类水果工厂需要接收用户提供的类别信息当新增产品的时候工厂内部去添加新产品的生产方式。
/*简单工厂模式通过参数控制可以生产任何商品优点简单粗暴、直观易懂。
使用一个工厂生产同一等级结构下的任意商品缺点1.所有东西生产在一起产品太多会导致代码量庞大2.开闭原则遵守不是太好要新增产品就必须修改工厂方法。
std::make_sharedBanana();return
FruitFactory::create(苹果);ff-name();ff
FruitFactory::create(香蕉);ff-name();return
在简单工厂模式下新增多个工厂多个产品每个产品对应一个工厂。
假设现在有A、B两种产品则开两个工厂工厂A负责生产产品A工厂B负责生产产品B用户只知道产品的工厂名而不知道具体的产品信息工厂不需要再接收客户的产品类别而只负责生产产品。
工厂方法模式定义一个创建对象的接口但是由子类来决定创建哪种对象使用多个工厂分别生产指定的固定产品优点1.减轻了工厂类的负担将某产品的生产交给指定的工厂来进行2.开闭原则遵循较好添加新产品只需要新增产品的工厂即可不需要修改原先的工厂类。
缺点对于某种可以形成一组产品族的情况处理较为复杂需要创建大量的工厂类。
*/
AppleFactory());std::shared_ptrFruit
factory-create();fruit-name();factory.reset(new
factory-create();fruit-name();return
工厂方法模式通过引入工厂等级结构解决了简单工厂模式中工厂职责太重的问题但由于工厂方法模式中的每个工厂只生产一类产品可能会导致系统中存在大量的工厂类势必会增加系统的开销。
此时我们可以考虑将一些相关的产品组成一个产品族位于不同产品等级结构中功能相关联的产品组成的家族由同一个工厂来统一生产这就是抽象工厂模式的基本思想。
/*抽象工厂围绕一个超级工厂去创建其他工厂。
每个生成的工厂按照工厂模式提供对象。
思想将工厂抽象成两层抽象工厂
std::shared_ptrAnimal();}std::shared_ptrFruit
std::make_sharedBanana();return
std::shared_ptrFruit();}std::shared_ptrAnimal
std::make_sharedFruitFactory();else
std::make_sharedAnimalFactory();}
FactoryProducer::getFactory(水果);std::shared_ptrFruit
fruit_factory-getFruit(苹果);fruit-name();fruit
fruit_factory-getFruit(香蕉);fruit-name();std::shared_ptrFactory
FactoryProducer::getFactory(动物);std::shared_ptrAnimal
animal_factory-getAnimal(小猫);animal-voice();animal
animal_factory-getAnimal(小狗);animal-voice();return
建造者模式是一种创建型设计模式使用多个简单的对象一步一步构建出一个复杂的对象能够将一个复杂的对象的构建与它的表示分离提供一种创建对象的最佳方式。
主要用于解决对象的构建过于复杂的问题。
抽象产品类具体产品类一个具体的产品对象类抽象pubic类创建一个产品对象所需的各个部件的抽象接口具体产品的Builder类实现抽象接口构建各个部件指挥者Director类统一组建过程提供给调用者使用通过指挥者来构建产品
std::shared_ptrComputer;Computer()
std::shared_ptrMacBook;MacBook()
std::shared_ptrMacBookBuilder;MacBookBuilder()
{_computer-setBoard(board);}virtual
display){_computer-setDisplay(display);}virtual
buildOS(){_computer-setOs();}virtual
display){_builder-buildBoard(board);_builder-buildDisplay(display);_builder-buildOS();}
MacBookBuilder();std::unique_ptrDirector
Director(builder));pd-construct(华为主板,
代理模式指代理控制对其他对象的访问也就是代理对象控制对原对象的引用。
在某些情况下一个对象不能或不适合直接被引用访问而代理对象可以在客户端与目标对象之间起到中介作用。
代理模式的结构包括一个真正的你要访问的对象目标类、一个是代理对象。
目标对象与代理对象实现同一个接口先访问代理类再通过代理类来访问目标对象。
代理模式分为静态代理、动态代理
静态代理指的是在编译时就已经确定好了代理类和被代理类的关系。
也就是说在编译时就已经确定了代理类要代理的是哪一个类。
动态代理指的是在运行时才动态生产代理类并将其与被代理类绑定。
这意味着在运行时才能确定代理类要代理的是哪一个类。
以租房为例房东将房子租出去但是房子要租出去需要发布招租启示带人看房负责维修这些操作中有些操作并非房东能完成因此房东为了图省事将房子委托给中介进行租赁。
std::endl;_landlord.rentHouse();std::cout
intermedirary;intermedirary.rentHouse();return
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback