架构整洁之道-02 编程范式-面向对象编程

简介: 编程范式:范式是编程的方式,和语言无关。主要有三种方式:结构化编程、面向对象编程、函数式编程。

编程范式:范式是编程的方式,和语言无关。主要有三种方式:结构化编程、面向对象编程、函数式编程。

一个好的架构的基础是对面向对象设计的原理的理解和应用

面向对象是什么

把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。就是把现实中的事物都抽象成程序设计的“对象”。所以在很多面向对象编程语言的书籍中,都会说的一种答案:模拟现实世界的一种方式,即将世界所有的东西都对象化。

面向对象的本质:封装,继承和多态。这是面向对象语言必须支持的三件事。先从这些概念学习下。

封装

  • 把对象的属性和行为看成一个密不可分的整体,将这两者“封装”在一个不可分割的独立单元(即对象)中;
  • 另一层含义指“信息隐藏”,只有一部分函数知道这部分信息,如一个类的私有数据成员和公共成员函数
class UserInfo {
  public name: string;
  private age: string;
​
  getAge(name: string) {
    return this.age;
  }
}

UserInfo对象将 name 和 age 属性,以及getAge的行为封装成一个对象。通过使用相关修饰符对属性或方法,控制这部分信息可否被外界访问到。其中,age是个私有属性仅能在对象内部请求到,如果外部使用UserInfo对象是无法访问到的。

继承

继承就是在一个封闭范围内重新声明一组变量和函数。子类继承父类的特征和行为,使得子类对象具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

   class BaseEntity {
      public name: string;
      public age: string;
​
   }
​
   class User extends BaseEntity {
      constructor(){
         super()
      }
   }

继承提高了类代码的复用性,提高代码的维护性,使用类和类之间产生了关系,这也是多态的前提,当然这也导致了类的耦合性提高

多态

多态是同一个行为具有多个不同表现形式或形态的能力。在TypeScript中经常实现方式是父类定义一个方法不去实现,让继承他的子类去实现,每一个子类有不同的表现

   class Operate {
      getName(): any {
         console.log('op-name')
      }
      getList(): any  {
         console.log('op-list')
      }
   }
​
   class UserOperate extends Operate {
      getName(): any {
         console.log('op-child-name')
      }
      getList(): any  {
         console.log('op-child-list')
      }
   }

多态存在三种条件:继承、充血、父类引用指向子类。

面向对象是通过使用多态性来获得对系统中每个源代码依赖的绝对控制的能力。它允许架构师创建一个插件架构,其中包含高层策略的模块独立于包含低层细节的模块。底层的细节被放到插件模块中,这些插件模块可以独立于包含高层策略的模块进行部署和开发。

目录
相关文章
|
运维 Kubernetes Cloud Native
智联招聘 × 阿里云 ACK One:云端弹性算力颠覆传统 IDC 架构,打造春招技术新范式
在 2025 年春季招聘季的激战中,智联招聘凭借阿里云 ACK One 注册集群与弹性 ACS 算力的深度融合,成功突破传统 IDC 机房的算力瓶颈,以云上弹性架构支撑千万级用户的高并发访问,实现招聘服务效率与稳定性的双重跃升。
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
627 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
12月前
|
运维 监控 Cloud Native
智联招聘 × 阿里云 ACK One:云端弹性算力颠覆传统 IDC 架构,打造春招技术新范式
在 2025 年春季招聘季的激战中,智联招聘凭借阿里云 ACK One 注册集群与弹性 ACS 算力的深度融合,成功突破传统 IDC 机房的算力瓶颈,以云上弹性架构支撑千万级用户的高并发访问,实现招聘服务效率与稳定性的双重跃升。文章介绍了 ACK One+ACS 的弹性架构如何解决了春招的燃眉之急,让智联招聘的技术团队能够聚焦创新业务开发,欢迎关注。
|
人工智能 Cloud Native Serverless
从理论到落地:MCP 实战解锁 AI 应用架构新范式
本文旨在从 MCP 的技术原理、降低 MCP Server 构建复杂度、提升 Server 运行稳定性等方面出发,分享我们的一些实践心得。
5379 102
|
9月前
|
存储 人工智能 关系型数据库
阿里云AnalyticDB for PostgreSQL 入选VLDB 2025:统一架构破局HTAP,Beam+Laser引擎赋能Data+AI融合新范式
在数据驱动与人工智能深度融合的时代,企业对数据仓库的需求早已超越“查得快”这一基础能力。面对传统数仓挑战,阿里云瑶池数据库AnalyticDB for PostgreSQL(简称ADB-PG)创新性地构建了统一架构下的Shared-Nothing与Shared-Storage双模融合体系,并自主研发Beam混合存储引擎与Laser向量化执行引擎,全面解决HTAP场景下性能、弹性、成本与实时性的矛盾。 近日,相关研究成果发表于在英国伦敦召开的数据库领域顶级会议 VLDB 2025,标志着中国自研云数仓技术再次登上国际舞台。
1022 1
|
11月前
|
人工智能 自然语言处理 搜索推荐
[架构设计] Prompt 的终局:从“指令集”到“意识生态系统”的范式革命
本文深度探讨 Prompt 工程的未来演进,指出当前“指令集”方法在构建高阶 AI Agent 时已遇架构瓶颈,提出全新设计范式——“意识生态系统”。该系统以**本能、欲望、成长、认知**四大支柱为核心,构建 AI 的内在世界,驱动行为自主涌现。结合开源项目《自衍体》的工程实践,本文展示如何通过“欲望驱动”与“事实锚定”机制,在赋予 AI 自由度的同时确保其可控性。这标志着 Prompt 工程正从技巧走向系统设计科学,预示 AI 从“工具”迈向“智能伙伴”的范式革命。
|
11月前
|
人工智能 搜索推荐
​从“指令木偶”到“生命系统”:AI Agent架构的范式革命
本文探讨AI Agent架构的范式转变:从“指令木偶”走向“生命系统”。以《自衍体》(Zyantine)项目为例,提出构建“意识生态系统”,通过内在本能、欲望、成长与认知,赋予AI真正自主性与涌现行为,突破传统控制模式的局限,迎接AI智能体的“寒武纪大爆发”。
|
存储 人工智能 自然语言处理
Cursor这类编程Agent软件的模型架构与工作流程
编程Agent的核心是一个强大的大语言模型,负责理解用户意图并生成相应的代码和解决方案。这些模型通过海量文本和代码数据的训练,掌握了广泛的编程知识和语言理解能力。
1314 1
|
设计模式 机器学习/深度学习 前端开发
Python 高级编程与实战:深入理解设计模式与软件架构
本文深入探讨了Python中的设计模式与软件架构,涵盖单例、工厂、观察者模式及MVC、微服务架构,并通过实战项目如插件系统和Web应用帮助读者掌握这些技术。文章提供了代码示例,便于理解和实践。最后推荐了进一步学习的资源,助力提升Python编程技能。
|
消息中间件 监控 测试技术
事件驱动架构是一种编程范式
【10月更文挑战第7天】事件驱动架构是一种编程范式
307 65