面向对象设计原则
内聚与耦合
- 高内聚-尽量自己的事自己做
- 低耦合-耦合度越低越好 类与类之间的关系
- 是所有优秀设计软件的特征
衡量软件设计质量
- 一,可读性
- 二,可复用性
- 三,可扩展性
- 四,可维护性
设计原则名称
- 1,单一职责原则,一个类只应该有一个引起它变化的原则
- 2,开闭原则
- 3,里氏替换原则 在项目中判断是否该做继承的时候使用的一种原则
- 4,依赖倒转原则DIP 是指将两个模块之间的依赖抽象类或者接口。
- 高层模块不应该依赖于低层模块,而都应该依赖于抽象
- 面试题:分层的时候,低层设计接口或抽象类与高层进行绑定,遵循的是依赖倒转原则,高层应该绑定低层的接口,而不是抽象
- 5,组合聚合复用原则
- 在设计时尽量使用组合聚合达到复用的目的,而不是继承来达到目的
- 好处:
- 唯一方法是接口,自带分层效果,职责单一原则也具备
- 黑箱复用
- 复用所有依赖更少,耦合度更低
- 可以达到一定的动态效果
- 继承复用的缺点:
- 破坏封装
- 超类实现改变,子类也改变
- 静态
- 6,接口隔离原则
- 尽量定义小接口,少定义大接口
- 7,迪米特法则LOD
- 最少知识原则
- 不要和陌生人说话
模式(套路)
设计模式(微观)23种公认的
学习方法
- 场景
- 解决方案{多种}
- 对比优劣
针对某一具体场景或设计做的代码级设计
- 创建模式
- 单例模式(Singleton)//必须掌握手写
- 当需要一种特殊类,能且只能产生一个对象
- 第一种:static属性全类共享一个值
- 好处:代码简单,线程绝对安全,支持高并发
- 坏处:预加载
- 第二种:加synchroniezd,不支持高并发
- 延迟加载(当真正使用对象才产生),解决了线程安全问题
- 双锁机制:好处:既支持延迟加载又支持高并发(背)
- 第一种:static属性全类共享一个值
- 工厂模式Factory
- 将生产对象的类与使用对象的类进行分离,
- 简单工厂变化的是商品
- 工厂方法-同一种商品不同的工厂
- 抽象工厂-两个工厂两种产品都要考虑到
- 原型模式
- 根据一个已有的对象,产生一个一模一样的对
- 调用克隆方法的这种实现叫浅克隆,只克隆一层
- 深克隆,序列化出去,反序列化回来
-
- 结构模式
- *
- 行为模式
- 装饰品模式
- 区分主料和配料,配料不能单独存在,配料继承主料
架构模式(宏观)
- 针对工程的类与接口的关系,进行项目的搭建与设计