任务一:常用的设计原则和设计模式
软件开发的流程
需求分析文档、概要设计文档、详细设计文档、编码和测试、安装和调试、维护和升级
开闭原则和里式替换原则
依赖倒装原则和接口隔离原则
迪米特法则和合成复用原则
当前类想要调用其他类中的方法,则可以在当前类中声明一个其他类的引用,用构造方法进行初始化,引用.方法名即可实现。
设计模式的概念和分类
懒汉式的线程同步实现
懒汉式单例设计模式会存在get方法去进行new对象时的一个线程问题,当第一个线程未结束时,即第一个对象还未new完返回,第二个对象就在创建了,两个对象的存在不符合单例,所以需将线程问题进行同步处理
添加synchronized关键字去修饰方法,将线程“锁"起来,也等同于synchronized(方法名.class)静态代码块。
懒汉式的线程同步优化
添加if进行判断当前对象是否为null值,仅对创建对象的代码进行加锁处理,不用每一次线程运行都进行加锁解锁,大大地提高了而效率。
普通工厂模式的概念和实现
实现借口,自定义抽象方法
自定义发邮件类实现借口,重写send方法。
自定义发短信类实现借口,重写send方法。
写一个工厂类,实现创建对象的方法。produce()返回值为sender,实现了多态。
写测试类,声明工厂类指向工厂类型的引用,调用生产方法来创建对象,使用对象调用方法来模拟发生的行为。
普通工厂模式的意义
多个工厂方法模式的实现
把一个produce方法变成两个produce方法去进行创建对象。
静态工厂方法模式的实现
静态方法模式,将方法前加上static关键字,即可通过类名.方法去调用,省去创建对象的这一步。
抽象工厂模式的实现
由一个生产类中的两个生产方法转变为两个生产类。
定义一个抽象方法来描述生产行为
两个生产类重写各自的生产方法
声明生产类的引用指向生产类的对象,创建生产对象,使用类命.方法名去调用,然后调用生产方法。
抽象工厂模式扩展的优势
添加新的类,进行扩展,不用在原有的代码基础上进行修改添加。
新建工厂类进行实现借口,重写方法。
完成对象的创建和方法调用。
装饰器模式的实现
需要对类的功能进行新功能的添加实现,且保证原有功能不变,则进行装饰类的编写
代理模式的实现
注意两个模式不同的构造方法,装饰器模式是将原始对象作为一个参数来进行传递,而代理模式是直接创建一个新的对象。
模板方法模式的实现
将多个子类中逻辑相同的提取出来为抽象类中的方法,通过多态的方式来实现不同子类的效果。