设计模式
文章平均质量分 73
阿尔兹
将生活技能点满,活成百科全书
展开
-
设计模式--简单工厂模式示例代码
简单工厂模式:简单工厂模式按照设计模式类型分的话是属于创建型模式,他是工厂模式中最简单的一种,他不属于GoF 23中设计模式之一,但是是简单实用的。他是有一个工厂对象来决定创建哪一种对象的实例。/*适用场景1.工厂类负责创建的对象比较少,由于创建的对象较少,不会造成工厂方法中的业务逻辑太过复杂2.客户只知道传入工厂类的参数,对于如何创建对象并不关心。*/优点:外界只要传入类的名字...原创 2019-08-20 21:31:10 · 600 阅读 · 1 评论 -
设计模式--观察者模式示例代码
观察者模式:随着交通信号灯的变化,汽车的行为也将随之而变化,一盏交通信号灯可以指挥多辆汽车。或者说,当我们下课的时候,大家有吃东西,睡觉的,和说话的,当上课铃一响,大家都开始上课听讲,上课铃这个对象的状态从不响到响,使得其他学生对象的状态改变抽象主题(Subject)角色:主题角色把所有对观察考对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一...原创 2019-08-21 13:35:03 · 339 阅读 · 0 评论 -
设计模式--命令模式示例代码
命令模式:角色用途:客户(Client**):创建了一个具体命令(ConcreteCommand)对象并确定其接收者。命令(Command**):声明了一个给所有具体命令类的抽象接口。这是一个抽象角色。具体命令(ConcreteCommand**):定义一个接受者和行为之间的弱耦合;实现Execute()方法,负责调用接收考的相应操作。Execute()方法通常叫做执行方法。...原创 2019-08-21 12:52:02 · 220 阅读 · 0 评论 -
设计模式--策略模式示例代码
策略模式: 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化适用性:1,多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。2,需要在不同情况下使用不同的策略(算法),或者策略还可能在未来用其它方式来实现。3,对客户隐藏具体策略(算法)的实现细节,彼此完全...原创 2019-08-21 10:24:03 · 196 阅读 · 0 评论 -
设计模式--模板方法模式示例代码
模板方法模式:定义一个操作中算法的框架,而将—些步骤延迟到孑类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。抽象模版角色:定义了一个或多个抽象操作,以便让子类实现。这些抽象操作叫做基本操作,它们是一个顶级逻辑的组成步骤。定义并实现了一个模版方法。这个模版方法一般是一个具体方法,它给出了一个顶级逻辑的骨架,而逻辑的组成步骤在相应的抽象操作中,推...原创 2019-08-20 23:13:08 · 292 阅读 · 0 评论 -
设计模式--适配器模式示例代码
适配器模式:将—个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式就是将已经写好的接口,但是这个接口不符合需求 将写好的接口转换成目标接口如:比如说我的笔记本电脑,如果是美国产品,美国的电压是110V的,而我们中国的电压是220V,要在中国能使用,必须找个变压器转一下电压才可以。这个变压器就是个适配器...原创 2019-08-20 22:50:18 · 451 阅读 · 0 评论 -
设计模式--外观模式示例代码
外观模式:外观模式就是将复杂的子类系统抽象到同一个的接口进行管理,外界只需要通过此接口与子类系统进行交互,而不必要直接与复杂的子类系统进行交互外观(Facade)角色:客户端可以调用这个角色的方法。此角色知晓相关的(一个或者多个)子系统的功能和责任。在正常情况下,本角色会将所有从客户端发来的请求委派到相应的子系统去。子系统(subsystem)角色:可以同时有一个或者多个子系统。...原创 2019-08-20 22:39:55 · 336 阅读 · 0 评论 -
设计模式--代理模式示例代码
代理模式:代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户和目标对象之间起到中介的作用。代理模式所涉及的角色有:抽象主题角色(Subject):声明了真实主题和代理主题的共同接口,这样一来在任何使用真实主题的地方都可以使用代理主题。代理主题(Proxy)角色:代理主题角色内部含有对真是...原创 2019-08-20 22:29:18 · 234 阅读 · 0 评论 -
设计模式--单例模式示例代码
单例模式:单例模式是一种常用的软件设计模式。在它的核心结构中只包含—个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。 如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。该类不能被复制。 该类不能被公开的创造。实现单例模式的步骤:1.构造函数私有化2.增加静态私有的当前类的指针3...原创 2019-08-20 22:14:36 · 316 阅读 · 0 评论 -
设计模式--抽象工厂模式示例代码
抽象工厂模式:/* 抽象工厂模式针对的是产品族,而不是产品等级结构 产品族:同一产地或者同一厂商,功能不同 产品等级:功能相同,产地或者厂商不同*/实现要点:在抽象工厂模式中,选用哪种产品族的问题,需要采用工厂方法或简单工厂模式来配合解决。 抽象工厂模式和工厂方法模式一样,都把对象的创建延迟到了他的子类中。 具体的工厂类可以设计成单例类,他只向外界提供自...原创 2019-08-20 22:05:47 · 859 阅读 · 0 评论 -
设计模式--工厂方法模式示例代码
工厂方法模式:工厂方法模式不同于简单工厂模式的地方在于工厂方法模式把对象的创建过程放到里子类里。这样工厂父对象和产品父对象一样,可以是抽象类或者接口,只定义相应的规范或操作,不涉及具体的创建或实现细节。/*适用场景 1.客户端不知道它所需要的对象的类 2.抽象工厂类通过其子类来指定创建哪个对象。*/例子:代码中有 抽象的水果类,具体水果类,抽象的工...原创 2019-08-20 21:35:20 · 460 阅读 · 0 评论 -
设计模式--装饰模式示例代码
装饰模式:装饰模式又叫包装模式,通过—种对客户端透明的方式来扩展对象功能,是继承关系的一种替代装饰模式就是把要附加的功能分别放在单独的类中,并让这个类包含它要装饰的对象,当需要执行时,客户端就可以有选择的、按顺序的使用装饰功能包装对象。一般情况下用继承实现类的功能拓展装饰模式可以动态给一个类增加功能在装饰模式中的各个角色有:抽象构件(Component)角色:给出一...原创 2019-08-21 14:34:33 · 415 阅读 · 0 评论