![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
yym439
软件开发
展开
-
简单工厂
定义 由一个工厂对象决定创建出哪一种产品类的实例(类型:创建型) 使用场景: 工厂类负责创建的对象比较少 客户端只知道传入工厂累的参数,对于如何创建对象不关心 缺点:违背开闭原则,增加新产品需要修改工厂类的判断逻辑 代码 //抽象产品类 public abstract class Video { public abstract void produce(); }...原创 2019-01-31 14:31:16 · 101 阅读 · 0 评论 -
工厂方法
定义 定义一个创建对象的接口,让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。(创建型) 使用场景: 创建对象需要大量重复的代码 客户端不依赖产品类实例如何被创建、实现等细节 一个类通过子类来指定创建哪个对象 优点:符合开闭原则,提高可拓展性 比较 工厂方法:抽象产品,抽象工厂(工厂具体实现由子类完成) 简单工厂:没有抽象化工厂,工厂类完...原创 2019-01-31 16:11:17 · 87 阅读 · 0 评论 -
抽象工厂模式
定义 提供一个创建一系列相关或相互依赖对象的接口(创建型) 无须指定他们具体的类 适用场景: 客户端不依赖产品类实例如何被创建、实现等细节 一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量重复的代码 提供一个产品类的库,所有产品以同样接口出现,从而使客户端不依赖与具体实现 比较 工厂方法:针对产品等级(不同品牌厂家的同一种家电) 抽象工厂:针对产品族 (某品...原创 2019-01-31 17:38:35 · 104 阅读 · 0 评论 -
Builder模式
定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 使用场景 对象参数多,且很多参数有默认值 产品类中,调用顺序不同产生了不同的作用 多个部位、零件装配到对象中,产生的结果又不同 不同的执行顺序,产生不同的结果 Android模式下的Builder模式 源码中常用到Builder模式的是AlertDialog.Builder。 例...原创 2019-01-28 14:23:21 · 90 阅读 · 0 评论 -
UML入门
定义 UML:统一建模语言,用于构建和编写一个正在开发的面向对象的、软件密集系统的制品的开放方法 UML类图 记忆技巧: 箭头方向:子类指向父类 空心三角箭头:继承或实现 实线:继承 extends、关联(类中有另一个类作为属性) 虚线:实现 implement、依赖(用于方法入参,返回值) 空心菱形:聚合(空盘子可以放很多相同的东西,大雁群(空心菱形)——>大雁)...原创 2019-01-30 16:17:57 · 149 阅读 · 0 评论 -
软件设计原则
开闭原则 定义:类、模块、函数应该对拓展开放,对修改关闭。 用抽象构建框架,用实现拓展细节。 依赖倒置原则 定义:高层模块(调用类)不应该依赖低层模块(功能类),两者都应该依赖其抽象 抽象不应该依赖细节,细节应该依赖抽象 针对接口编程,不要针对实现编程(应该继承抽象类,实现接口) 单一职责 定义:不要存在多于一个导致类变更的原因 类、接口、方法只负责一项职责 ...原创 2019-01-31 10:36:57 · 87 阅读 · 0 评论