OOAD设计模式解析

模式包含的要素
1.模式名称
2、该模式所能解决的问题
3、解决方案
4、使用该模式后的效果(优点和缺点)
模式
避免重复问题而提出来的解决方案
类型
架构模式
软件加构上的,整体考虑而提出来的一些解决方案,比如:B/S,C/S,MVC,ORM,事务脚本,领域模型……从宏观的角度来说
设计模式
是从微观的角度上来看软件开发过程中,碰到的一些重复业务场景并提出的解决方案。
设计模式分类
创建型设计模式
更多的关注对象如何创建,而提出来的各种创建方案
结构型设计模式,
更多的关注于类和类,对象和对象的整体结构而提出来的各种解决方案
行为型设计模式
更多的关注与实例之间的行为互调,以及职责分配的问题
分类
创建型模式
结构式模式
行为型模式
重点掌握:
代理模式
单例模式
简单工厂方法:将产品的生产,从调用类中提取到工厂类中来,工厂的职责就是产生客户想要的产品。如果后续需要拓展新的产品。我们只需要修改工厂类(违背开闭原则。其实可以借助反射来解决)
又称之为静态工厂方法模式,该模式会专门定义一个工厂类,然后再工厂类中提供一个静态方法,由该静态方法根据用户的输入,动态决定创建什么类型的对象,通常来说工厂类都有一个特点就是具备相同的父类,或者具备相同的接口
简单工厂的三种角色:
产品的抽象类(或接口):对具体产品进行类的抽象或行为的抽象
具体的产品:工厂类产生的实例
工厂类:主要负责根据用户的输入,动态的产生具体的产品
作用:将客户调用类上的职责分离,每一个客户调用类身上至少具备两个职责(创建对象的职责,调用对象的行为的职责),进行职责分离,让调用类最终只存在一个职责(调用对象的行为的职责),而将创建对象的职责委托给工厂类
缺点:
简单工厂,实际上将对象的产生,由之前的客户调用类身上,强制性的定义在工厂类身上,工厂类此时具备了一定的创建对象的业务逻辑,以及一些判断逻辑。那么如果具体的产品,需要发生变化,或者是有新的产品需要拓展,那么毫无疑问,此时就需要去针对工厂类做相应的变化,那么无形中就违背了“开闭原则”,“单一原则”,“接口依赖倒转原则”
注:简单工厂模式,只能产生同一家族(继承相同类,实现相同接口)的产品,非统一家族的产品,简单工厂是无法使用的

你可能感兴趣的:(OOAD)