head first学习笔记

本文探讨了软件设计中如何通过面向变化的原则来减少代码变动带来的风险,包括接口编程、委托、动态设定行为、装饰者模式、依赖倒置原则、抽象工厂模式等,并通过实例解释了如何在实际开发中应用这些模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.找出应用中可能变化的之处,把他们独立出来,不要和那些不需要变化的代码混在一起。
结果:由于代码变化引起的不经意变化减少,系统弹性减少。

2.针对接口编程,而不是针对实现(具体)编程。
使用委托,而不是继承。 动态设定行为。
类之间的关系可以是 "is a"-是一个,也可以是"has a",有一个。
多用组合,少用继承。

jdk中最常用的模式观察者模式
观察者模式定义了对象之间的一对多依赖关系,当依赖对象的状态改变,其他对象都会知悉并自动更新。

3.使交互对象之间松耦合

java.util.Observable 是一个类,而不是一个接口。它把setChanged方法设为protected,除非使用继承,否则不能将它组合进来,违反了oo规则"多用组合,少用继承"

4.类应该对修改关闭,对扩展开放。
装饰者模式:动态的将责任附加到对象上,比继承更有弹性。
但是会引入很多的小类。

工厂模式
定义了一个创建对象的接口,由子类决定要创建的对象是哪一种类型。

5.依赖倒置原则
要依赖抽象,不要依赖具体类。
如何做到依赖倒置呢,有以下原则:
变量不可以有具体类的应用,用工厂方法解决;
不要让类派生自具体类;
不要覆盖基类中实现的方法;(基类中的方法应该在所有子类中共享)

抽象工厂模式
提供一个接口用于创建相关和依赖对象的家族,而不需要指明具体的类。

抽象工厂 vs 工厂
抽象工厂定义了一个生产一组产品的接口,而这个接口的每个方法负责创建一个产品。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值