《设计模式之禅》 - 书摘精要
(P2)
BO (Business Object) 业务对象;
BL (Business Logic) 业务逻辑;
(P13) 如果子类不能完全实现父类的方法,或者父类的某些方法在于子类中已经发生“畸变”,则建议断开父子继承关系,采用依赖、聚合、组合等关系代替继承;
(P24) 在 Java 中,只要定义变量就必然要有类型,一个变量可以有两种类型:表面类型和实际类型,表面类型是在定义的时候赋予的类型,实际类型是对象的类型;
(P25)
依赖的三种写法:
1. 构造函数传递依赖对象;
2. Setter 方法传递依赖对象;
3. 接口声明依赖对象;
(P26)
依赖倒置原则最佳实践:
1. 每个类尽量都有接口或抽象类,或者抽象类和接口两者都具备;
2. 变量的表面类型尽量是接口或抽象类;
3. 任何类都不应该从具体类派生;
4. 尽量不要覆写基类方法;
5. 结合里氏替换原则使用;
(P27)
依赖倒置原则是6个设计原则中最难以实现的原则,它是实现开闭原则的重要途径,依赖倒置原则没有实现,就别想实现对扩展开放,对修改关闭。在项目中,大家只要记住是“面向接口编程”就基本上抓住了依赖倒置原则的核心;
(P42) 迪米特法则要求类“羞涩”一点,尽量不要对外公布太多的 public 方法和非静态的 public 变量,尽量收敛,多用 private 、 package-private 、 protected 等访问权限;
(P71) 工厂方法模式是 new 一个对象额的替代品,所以在所有需要生成对象的地方都可以使用;
(P73) 简单工厂模式 (Simple Factory Pattern) 也叫做静态工厂模式;
(P84)
有 N 个产品类,在抽象工厂类中就应该有 N 个创建方法;
有 M 个产品等级就应该有 M 个实现工厂类,在每个实现工厂中,实现不同产品族的生产任务;
(P141) 不通过 new 关键字产生一个对象,而是通过对象复制来实现的模式就叫原型模式;
(P145) 深拷贝和浅拷贝建议不要混合使用,特别是在涉及类的继承时,父类有多个引用的情况就非常复杂,建议的方案是深拷和浅拷贝分开实现;
(P166) 用字符串来传递命令并不是一个非常好的方案;
http://www.adocode.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架