随笔分类 -  设计模式

摘要:观察者模式结构图: 从上图中可以看到观察者模式需要4个角色: 1.Observer:抽象观察者。 2.ConcreteObserver:具体观察者。 3.Subject:抽象通知者。 4.ConcreteSubject:具体通知者。 这里我们用上班玩手机来举例:有几个同事每天在公司的状态为“玩手机” 阅读全文
posted @ 2019-05-08 16:57 一响贪欢 阅读(620) 评论(0) 推荐(0) 编辑
摘要:建造者模式结构图 从上图中可以看到实现建造者模式至少需要4个角色: 1、director:指挥者。由指挥者根据需求决定调用哪个建造者生产哪种产品。 1、builder:建造者接口。定义了建造一个产品所必须的所有流程。所有的建造者都需要实现该类,以确保实现建造一个产品所需的流程。 2、concrete 阅读全文
posted @ 2017-09-06 16:34 一响贪欢 阅读(433) 评论(0) 推荐(0) 编辑
摘要:概述: 外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。 例子1:电脑开机,我们只需按下开机按钮,并不清楚主机内部如何启动,启动了哪些部件。 外观模式结构图 用途: 1、有多个子系统的系统相互间通信,可以降 阅读全文
posted @ 2017-09-06 10:06 一响贪欢 阅读(227) 评论(0) 推荐(0) 编辑
摘要:概述: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 角色: 1、层次类:这是一个抽象类,定义了程序的骨架,抽象细节。 2、细节类:继承抽象类,对细节进行描述,完善程序,扩展父类功能。 具体代码: 层次类: 细节类: 阅读全文
posted @ 2017-08-30 11:51 一响贪欢 阅读(122) 评论(0) 推荐(0) 编辑
摘要:在一个对象的基础上,生成一个一模一样的对象。 java中自带clone()方法,可以实现原型模式。 注意:重写clone方法时,必须实现cloneable接口,该接口只是一个标识接口,不带任何方法。但是如果不实现,则会报错CloneNotSupportedException。 阅读全文
posted @ 2017-08-30 10:49 一响贪欢 阅读(183) 评论(0) 推荐(0) 编辑
摘要:工厂方法模式优点:完全实现了ocp原则,实现了可扩展。 工厂方法模式常用场景: 1、java的Collection的iterator()。 2、调用者只需要获得抽象工厂,具体工厂由生产者根据逻辑或当前系统的状态,自动判断。 工厂方法模式角色: 1、抽象工厂:所有工厂类的顶级接口 2、具体工厂: 3、 阅读全文
posted @ 2017-08-17 09:44 一响贪欢 阅读(182) 评论(0) 推荐(0) 编辑
摘要:代理模式应用场景:1、远程代理:为一个对象在不同的地址空间提供局部代表。可隐藏对象存在不同地址空间的事实。例如ws在.net中的应用。 2、虚拟代理:通过代理来存放实例化需要很长时间的真实对象。例如让一个很大的html页面立即展开,可以通过代理设置图片位置为空,先占位打开页面,然后再慢慢加载图片后填 阅读全文
posted @ 2017-08-16 17:45 一响贪欢 阅读(161) 评论(0) 推荐(0) 编辑
摘要:装饰模式优点:将类中原有的装饰功能移出,作为单独的一个或几个对象。简化了原有的类,同时又可以动态的为类增加某一项或某几项装饰,而不必修改原类。有效的把类的核心职责和装饰功能区分开来,并且去除相关类中重复的装饰逻辑。同时让类在某些特定的时候,才拥有某些特定的功能。 常用场景:加密数据、过滤词汇。 装饰 阅读全文
posted @ 2017-08-16 16:54 一响贪欢 阅读(288) 评论(0) 推荐(0) 编辑
摘要:单一职责原则(SRP):就一个类而言,应该仅有一个能引起它变化的原因。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。 软件设计真正要做的许多内容,就是发现职责并把那些 阅读全文
posted @ 2017-07-17 17:31 一响贪欢 阅读(155) 评论(0) 推荐(0) 编辑
摘要:策略模式:这是一种对象行为型的模式。实现某一个功能,有多种算法或策略,我们可以根据环境或条件的不同选择不同的算法或策略来完成该功能。 结构组成: 1、算法使用环境角色:在此根据环境或条件选择使用哪一种具体的算法或策略。 2、抽象策略角色:对具体策略角色的抽象。 3、具体策略角色:可供选择的最终的算法 阅读全文
posted @ 2017-07-13 15:56 一响贪欢 阅读(325) 评论(0) 推荐(0) 编辑
摘要:简单工厂模式需要有三个组成角色: 1、工厂类角色:负责生成具体产品类。 2、抽象产品角色:代表了具体产品的一个抽象类或是接口。 3、具体产品角色:最后生成的实例对象即是它。 我们以一个车辆选择的例子来作说明: 1、工厂类:此例中代表我们想要选择的车型,可以是“benz”和"audi"。 2、抽象产品 阅读全文
posted @ 2017-07-13 11:18 一响贪欢 阅读(206) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示