1.软件设计模式:
设计原则:开闭原则(OCP)、里氏代换原则(LSP)、依赖倒转原则(DIP,抽象不应该依赖细节,细节应该依赖抽象)、合成/聚合服用(ISP)、接口隔离(CARP),最小知识(PLK)
设计模式(23种):创建型模型——单例(保证一个类仅有一个实例)、抽象工程(每次添加新的类)、建造者、工厂方法(不同条件下创建不同实例)、原型
结构型模型——适配器(使得原本由于接口不兼容而不能一起工作的那些类可以一起工作)、桥接(两个维度独立变化,依赖方式实现抽象与实现分离)、装饰((保持接口,增强性能:修饰类继承被修饰对象的抽象父类,依赖被修饰对象的实例(被修饰对象依赖注入),以实现接口扩展基类传入基本的数据,可通过后面的类进行加工处理,自主组合))、组合、外观、享元、代理
行为型模型——模板方法、命令、迭代器、观察者(一对多的依赖关系,在观察目标类里有一个ArrayList存放观察者们。当观察目标对象的状态发生改变,所有依赖于它的观察者都将得到通知,使这些观察者能够自动更新(即使用推送方式)
主题提供注册和通知的接口,观察者提供自身操作的接口。(这些观察者拥有一个同一个接口。)观察者利用主题的接口向主题注册,而主题利用观察者接口通知观察者。耦合度相当之低)、中介者、备忘录、解释器、状态、策略(策略对象依赖注入到context对象,context对象根据它的策略改变而改变它的相关行为)、指责/任链(拦截的类都实现统一接口,每个接收者都包含对下一个接收者的引用。将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。)、访问者
2.软件生存周期:
周期:问题定义、可行性分析、需求分析、总体设计、详细设计、编码和单元测试、综合测试、维护(持续时间最长,花费代价最大)
模型:瀑布模型(需求不易变更)、增量模型、演化模型、螺旋模型(制定计划、风险分析、实施工程、客户评估)、喷泉模型
需求分析