一.面向对象三大特性 封装 继承 多态
1:编程时喜欢简单的把逻辑提出为一个方法,这样只是面向过程,体现不出面向对象。
2:最简单常见的是显示应该与逻辑分离
3:客户常常会有一些修改的要求,客户觉得很简单,但是我们的程序由于考虑不周,修改起来范围很广
4.修改时常常说需要提供某某源代码才能修改,但这时非常危险的,可能破坏原来程序的正确性
二.UML类图
三.策略模式
1.策略模式可用来封装任何类型的规则,只要在不同场合应用不同的业务规则,都可以考虑策略模式处理这种变化的可能
2.策略模式与工厂模式结合后,原来又客户端决定具体实现可转移到策略模式的对象中
四.单一职责原则
1.如果能想到多余一个可能去改变一个类,那么这么类就具有多余一个的职责
五.开放-封闭原则
1.开闭原则指的是可以扩展,但不可修改
2.面对需求,对程序的改动是增加代码而不是修改现有代码
六.依赖倒转原则
1.抽象不应该依赖细节,细节应该依赖抽象。针对接口编程,不针对实现编程
七.装饰模式
1.建造者模式要求过程稳定,装饰模式则顺序不定
八.代理模式
1.远程代理
2.虚拟代理
3.安全代理
4.智能指引
九.工厂方法模式
1.简单工作模式的优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖,但是违背了开闭原则;工作方法模式则将一个类的实例化延迟到子类,由子类决定。
2.虽然工作方法符合了开闭原则,但却将简单工厂的内部逻辑转移到了客户端!
十.原型模式
1.在初始化信息不发生变化时,克隆是最好的方法,它隐藏了对象创建的细节
2.浅层复制只复制值类型,不复制引用
十一.抽象工厂模式
1.简单工厂模式可用反射技术去除分支判断
十二.状态模式
1.当一个对象的行为取决与它的状态,并且它必须在运行时刻根据状态改变它的行为时,就可以考虑使用状态模式了
十三.适配器模式
1.优先考虑重构,接口不可变考虑适配
十四.备忘录模式
1.适用于功能复杂但需要维护属性历史的类
十五.组合模式
1.使得单个对象和组合对象的使用具有一致性
十六.单例模式
1.防止实例化多个对象是让类自身保存一份唯一实例
2.双重锁定可以保证多线程安全并避免每次都加锁