
设计模式
genmenu
这个作者很懒,什么都没留下…
展开
-
建造者模式
建造者模式 优点 在建造者模式中, 客户端不必知道产品内部组成的细节,将产品本身与产品的创建过程解耦,使得相同的创建过程可以创建不同的产品对象。 每一个具体建造者都相对独立,而与其他的具体建造者无关,因此可以很方便地替换具体建造者或增加新的具体建造者, 用户使用不同的具体建造者即可得到不同的产品对象 。 可以更加精细地控制产品的创建过程 。将复杂产品的创建步骤分解在不同的方法中,使得创建过程...原创 2019-02-19 17:26:02 · 146 阅读 · 0 评论 -
工厂模式
简单工厂模式 使用场景 工厂类负责创建的对象比较少:由于创建的对象较少,不会造成工厂方法中的业务逻辑太过复杂。 客户端只知道传入工厂类的参数,对于如何创建对象不关心:客户端既不需要关心创建细节,甚至连类名都不需要记住,只需要知道类型所对应的参数。 类图: 使用实例: IProduct interface IProduct { fun use() } ProductA c...原创 2019-02-19 16:00:25 · 121 阅读 · 0 评论 -
适配器模式
适配器模式 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,类别如下: 类适配器 数据源类Source,目标接口 Target, 适配器类 Adapter ,Adapter类继承Source类,并且实现Target接口,在Adapter类中实现数据的转换,类图如下: 实现代码如下: open class Source { protected fun soureMethod(...原创 2019-03-28 17:26:04 · 124 阅读 · 0 评论 -
装饰者模式与代理模式
装饰者模式 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 优点: 采用组合的方式,可以动态的扩展功能,同时也可以在运行时选择不同的装饰器,来实现不同的功能。 被装饰者与装饰者解偶,被装饰者可以不知道装饰者的存在,同时新增功能时原有代码也无需改变,符合开放封闭原则。 有效避免了使用继承的方式扩展对象功能而带来的灵活性差,子类无限制扩张的问题。 缺...原创 2019-03-28 19:43:22 · 370 阅读 · 0 评论 -
外观模式
简介 简单来说,该模式就是把一些复杂的流程封装成一个接口供给外部用户更简单的使用。这个模式中,设计到3个角色。 门面角色:外观模式的核心。它被客户角色调用,它熟悉子系统的功能。内部根据客户角色的需求预定了几种功能的组合。 子系统角色:实现了子系统的功能。它对客户角色和Facade时未知的。它内部可以有系统内的相互交互,也可以由供外界调用的接口。 客户角色:通过调用Facede来完成...原创 2019-04-08 20:00:19 · 120 阅读 · 0 评论 -
享元模式
简介 面向对象编程中,通过增加类与对象的数量可以很方便的解决一些扩展性的问题,但是如何系统中的对象的数量过多时会导致系统性能的下降。享元模式就是为了解决这个问题而产生的。使用共享技术实现相同或者相似的对象的重用。 优点: 享元模式的优点在于它可以极大减少内存中对象的数量,使得相同对象或相似对象在内存中只保存一份。 享元模式的外部状态相对独立,而且不会影响其内部状态,从而使得享元对象可以在...原创 2019-04-14 15:33:11 · 95 阅读 · 0 评论 -
桥接模式
简介 桥接模式是一种很实用的结构型设计模式,如果软件系统中某个类存在两个独立变化的维度,通过该模式可以将这两个维度分离出来,使两者可以独立扩展,让系统更加符合“单一职责原则”。与多层继承方案不同,它将两个独立变化的维度设计为两个独立的继承等级结构,并且在抽象层建立一个抽象关联,该关联关系类似一条连接两个独立继承结构的桥,故名桥接模式。 桥接模式用一种巧妙的方式处理多层继承存在的问题,用抽象...原创 2019-04-14 17:16:56 · 235 阅读 · 0 评论 -
命令模式
简介 命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。 每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否被执行、何时被执行,以及是怎么被执行的。 特点: 命令模式使新的命令...原创 2019-04-14 18:00:58 · 104 阅读 · 0 评论 -
观察者模式
观察者模式结构 一个软件系统常常要求在某一个对象的状态发生变化的时候,某些其他的对象做出相应的改变。做到这一点的设计方案有很多,但是为了使系统能够易于复用,应该选择低耦合度的设计方案。减少对象之间的耦合有利于系统的复用,但是同时设计师需要使这些低耦合度的对象之间能够维持行动的协调一致,保证高度的协作。观察者模式是满足这一要求的各种设计方案中最重要的一种。 类图 观察者模式所涉及的角色有: 被...原创 2019-08-05 15:29:02 · 160 阅读 · 0 评论