an网站建设衡水哪儿做网站便宜

张小明 2026/1/6 15:42:47
an网站建设,衡水哪儿做网站便宜,住房和城乡建设部网站诚信评价,怎样先做网站后买域名封装的好处#xff1a; 1、为了更加方便调用#xff0c;一些固定参数不用多次写入。 2、同时如果底层代码修改#xff0c;例如#xff1a;传入参数如果有变动#xff0c;你有100处位置调用了此方法#xff0c;如果不用封装#xff0c;需要修改100次。用了封装#xff0…封装的好处1、为了更加方便调用一些固定参数不用多次写入。2、同时如果底层代码修改例如传入参数如果有变动你有100处位置调用了此方法如果不用封装需要修改100次。用了封装只需要修改封装的函数即可。继承的好处1、继承是为了一些共性的方法不用多次定义例如定义一个人的参数。需要分出老人、儿童、男人、女人。定义身高、体重、年龄、外貌等。 身高、体重、年龄为共性 可以在父类定义子类只需要定义外貌即可。不需要重复定义身高、体重、年龄。接口的好处1、具体代码实现看下面方便理解例如存在一个支付接口存在多种类型支付。不可能在业务层把所有支付渠道都定义好屎山代码。接口存在的意义就是可以让业务层接收接口类型的参数即可。不需要知道是什么类传输进来。2、接口不是为了少写代码、避免重复定义一类行为的统一标准。类似于支付的规则 必须给那些参数才可以使用。3、接口让【算法】和【数据】彻底分离这是关键业务层只关心“什么时候支付、支付多少钱”不关心“怎么支付”4、接口是大型系统“协作边界”在真实工程里接口不是给 JVM 用的 是给人用的定义规范然后给人直接使用。这是团队协作、插件化、微服务的基础5、通过下面的例子 也就能理解了在调试代码的时候命名看到的类型是PayService 但是在实际调用的时候找不到对应的实现或者跳转到别的类里面去了。就是因为PayService 是接口类型在运行时会跳转到对象的指向的类里面具体实现的方法。**多态**接口 继承的衍生把三者放在一个维度里对比非常重要特性 解决的问题封装隐藏细节减少修改范围继承表达“是什么”复用共性接口表达“能做什么”隔离变化一、封装Encapsulation——最重要但最容易被忽略1️⃣ 是什么把“怎么做”藏起来只告诉你“能做什么”2️⃣ 例子贴近你刚才的问题❌ 不封装坏Constructor?cReflectionFactory.getReflectionFactory().newConstructorForSerialization(cls,Object.class.getDeclaredConstructor());c.setAccessible(true);Objectobjc.newInstance();你用一次要记一堆细节。✅ 封装后好ObjectobjSerializeUtils.createWithoutConstructor(cls);3️⃣ 为什么要用问题 封装解决什么实现会变 调用方不用改代码难读 方法名就是说明易误用 不给你机会乱传参数可维护性 改一处全生效 你刚才问的那个问题本质就是封装的意义二、继承Inheritance——复用 表达“是什么”1️⃣ 是什么子类是父类的一种is-a2️⃣ 例子classAnimal{voidspeak(){System.out.println(some sound);}}classDogextendsAnimal{voidbark(){System.out.println(wang);}}3️⃣ 为什么要用不用继承会怎样classDog{voidspeak(){...}voideat(){...}voidsleep(){...}}classCat{voidspeak(){...}voideat(){...}voidsleep(){...}} 重复代码 修改一个行为要改一堆类用继承后classAnimal{voideat(){}voidsleep(){}}4️⃣ 什么时候不该用继承⚠️ 如果只是“像”不是“就是”→ 不该继承比如class Car extends Engine ❌三、多态Polymorphism——同一接口不同行为之前一直在问OrderService 怎么知道 payService 是 Alipay答案现在你应该能对上了OrderService 不知道JVM 在运行时根据“对象真实类型”决定调用哪个方法这就是 多态没有多态if(typeALIPAY){alipay.pay();}elseif(typeWECHAT){wechat.pay();}elseif(typeUNIONPAY){...}多态成立必须满足的 3 个条件条件 1️⃣有继承 / 实现关系 继承类或者实现接口条件 2️⃣父类引用指向子类对象 用一个 Animal 类型的引用去指向一个 Dog 类型的对象Animal a代表父类的引用 继承了动物接口 new Dog();子类的对象AnimalanewDog();继承的基础上多态举例父类classPerson{publicvoidintroduce(){System.out.println(我是一个人);}}子类classStudentextendsPerson{Overridepublicvoidintroduce(){System.out.println(我是一个学生);}}publicclassTest{publicstaticvoidmain(String[]args){Personp1newPerson();Personp2newStudent();// 多态发生p1.introduce();// 我是一个人p2.introduce();// 我是一个学生}}条件 3️⃣方法被重写override四、接口Interface——约定而不是实现1️⃣ 是什么定义“必须有什么方法”不关心怎么实现2️⃣ 例子没有接口的写法强耦合classAlipayService{publicvoidpay(doubleamount){System.out.println(支付宝支付amount);}}classWechatPayService{publicvoidpay(doubleamount){System.out.println(微信支付amount);}}业务层classOrderService{publicvoidcreateOrder(StringpayType,doubleamount){if(alipay.equals(payType)){newAlipayService().pay(amount);}elseif(wechat.equals(payType)){newWechatPayService().pay(amount);}}}❌ 问题OrderService 需要知道所有支付实现每加一种支付方式 → 改 if-else无法单元测试没法 mock代码一多就“屎山”引入接口/** * 支付能力接口 * 只定义“能做什么”不关心“怎么做” */定义接口能力契约publicinterfacePayService{/** * 发起支付 * param amount 支付金额 */voidpay(doubleamount);}实现接口publicclassAlipayServiceimplementsPayService{Overridepublicvoidpay(doubleamount){System.out.println(使用【支付宝】支付amount);}}publicclassWechatPayServiceimplementsPayService{Overridepublicvoidpay(doubleamount){System.out.println(使用【微信】支付amount);}}业务层定义classOrderService{privatefinalPayServicepayService;// 通过构造方法注入publicOrderService(PayServicepayService){this.payServicepayService;}publicvoidcreateOrder(doubleamount){payService.pay(amount);}}主函数调用publicclassMain{publicstaticvoidmain(String[]args){PayServicepayServicenewAlipayService();OrderServiceorderServicenewOrderService(payService);orderService.createOrder(100.0);}}
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

wordpress保护插件深圳seo教程

概述 SIFT(Scale-Invariant Feature Transform,尺度不变特征变换)是一种经典的局部特征检测与描述算法,由 David Lowe 于 1999 年提出,并在 2004 年完善。SIFT 的核心优势在于:对尺度变化、旋转变化具有不变…

张小明 2026/1/4 16:03:53 网站建设

北京网站建设著名公司Seo建设网站的步骤

Linux 和 Windows 是目前主流的两类操作系统,二者的核心区别可以从定位与起源、权限与安全、定制性、使用场景、生态这几个核心维度来区分: 定位与起源 Linux:是一款基于 Unix 的开源操作系统,最初由林纳斯・托瓦兹在 1991 年开发…

张小明 2025/12/21 4:47:10 网站建设

安徽省建设银行网站wordpress加入百度统计

你是否曾经为了备份心爱的Steam游戏而烦恼?或者想要在不同设备间同步游戏配置却无从下手?传统方法不仅操作复杂,还容易出错。现在,Onekey工具彻底改变了这一现状,让Steam游戏清单下载变得前所未有的简单高效。 【免费下…

张小明 2025/12/21 4:45:09 网站建设

专门查大学的网站淘宝客模板wordpress

C语言内存管理全解析 1. C语言内存管理基础 在C语言中,程序员需要全面负责内存管理,必须时刻关注所有内存分配情况。常见的编程陷阱之一是“释放后使用”(use-after-free),即当一块内存被释放后又被访问。一旦对某块内存调用了 free() 函数,程序就绝不能再访问其内容…

张小明 2025/12/21 4:43:07 网站建设

杭州国外网站推广公司中国建筑装修网

一、并发的本质1. 并发≠并行先弄清楚两个概念:并发(Concurrency):多个任务在时间片上交替执行,宏观上"同时",微观上是串行切换并行(Parallelism):多个任务在多…

张小明 2025/12/21 4:41:06 网站建设

网站开发摊销期wordpress多语

Qwen2.5-VL:2025多模态革命,从看懂到自主行动的技术跨越 【免费下载链接】Qwen2.5-VL-3B-Instruct 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen2.5-VL-3B-Instruct 导语 阿里通义千问团队推出的Qwen2.5-VL多模态大模型,…

张小明 2025/12/21 4:39:05 网站建设