#设计模式
北漂人生
追逐梦想,勇往直前,即使头破血流也在所不惜!
展开
-
java设计模式之桥接模式
一、bridge模式 需求 为不同款的手机设置相同的功能。 代码实现 手机功能抽象类:public abstract class HandSetSoft { public abstract void run();}手机品牌抽象类:public abstract class HandSetBrand { private HandS...原创 2019-11-25 11:00:42 · 255 阅读 · 0 评论 -
java设计模式之迭代器模式
一、定义提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。二、代码实例 需求 自己写一个iterator迭代器,遍历list。 代码实现 迭代器接口:public interface Iterator { public Object first(); public Object next(); publi...原创 2019-11-11 14:58:10 · 148 阅读 · 0 评论 -
java设计模式之单例模式
一、定义 保证一个类仅有一个实例,并提供一个可以访问它的全局访问点。二、单例目前分类 1.饿汉模式 很好理解,饿汉就是十分着急要吃的,也就是迫切的创建对象,程序一加载就创建好了对象,等着被使用。可以想象当程序一旦加载,会有着大量单例对象被创建,等待被使用,如果没有用到的话,将是一种资源的浪费,所以饿汉模式必须确定该对象会被使用。...原创 2019-11-05 09:57:20 · 117 阅读 · 0 评论 -
java设计模式之组合模式
一、定义形成树状的层次管理结构图,并且每个节点都具有相同的功能。将对象组合成树形结构以表示部分-整体的的层次结构。组合模式是的用户对单个对象和组合对象的使用具有一致性。二、代码实例 需求 在大公司建立管理系统,旗下有多个分公司,都需要建立同样的管理系统,需要在有层级关系的情况下,对管理系统的代码进行复用。 代码实现 ...原创 2019-11-05 09:36:34 · 136 阅读 · 0 评论 -
java设计模式之备忘录模式
一、定义 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复原先保存的状态。二、代码实例 需求 大家应该都玩过游戏,也知道其中的保存进度功能,随时可以切回之前的状态,现在我们就用java代码实现此功能。 代码实现 游戏角色类:public class GameRole { ...原创 2019-11-05 09:31:26 · 87 阅读 · 0 评论 -
java设计模式之适配器模式
一、定义适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。二、代码示例 需求 姚明初次来到外国,不会说英文,听不懂英文,但是他应该如何和队友或者教练交流呢?答案很明显,需要一个第三者翻译来传达。这也符合我们的设计模式中的适配器模式。 代码实现 抽象运动员:pub...原创 2019-10-18 14:12:55 · 96 阅读 · 0 评论 -
java设计模式之状态模式
一、定义 当一个对象内部状态改变时,允许改变其行为,这个对象看起来是改变了其类。本例子中,根据时间的变化,工作状态在不断地改变。如果现在增加一个工作完成,提前下班的规定只需要增加实现类即可。二、代码实例 需求 根据不同时间,描述不同的工作状态。代码要求扩展性强,符合设计原则。 代码实现 工作类:public class Work { ...原创 2019-10-12 09:38:07 · 93 阅读 · 0 评论 -
java学习-设计模式之抽象工厂模式
java学习-设计模式-抽象工厂模式一 定义 为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类。二 代码实例 需求 对于不同的数据库和不同的表,如mysql,oracle都能够简单的就可以实现查询更新操作。换数据库是,无需改动太多的代码。 代码实现 部门类:public class Dept { private ...原创 2019-10-10 09:11:23 · 91 阅读 · 0 评论 -
java设计模式之策略模式
一 简介 定义一组算法,将每个算法都封装起来,使得它们之间可以相互替换。策略模式让算法独立于调用它的客户端而独立变化。定义可能很抽象,不懂不要紧,写个demo立马懂。二 策略模式之商场促销的实现 要求已知原价和促销类型,然后根据程序得出促销后的结果。如满300减100或者打X折等。代码要可维护,可扩展,可复用,灵活性高。任意增加其他促销方式,不会影响到客户端...原创 2019-09-18 09:17:18 · 173 阅读 · 0 评论 -
java设计模式之简单工厂模式
一 简介 简单工厂模式属于工厂模式的一种,工厂模式总共有三种,分别是简单工厂模式,工厂方法模式和抽象工厂模式。二 以下以一个简单的例子介绍一下简单工厂模式-计算机的实现算法工厂类:通过传入不同的值,创建不同的算法对象public class OperationFactory { public static Operation createOpera...原创 2019-09-17 15:29:33 · 97 阅读 · 0 评论 -
java设计模式之工厂方法模式
工厂方法模式-学雷锋做好事在写代码之前,先说一下我们设计模式中的两大原则,即单一职责原则和开放-封闭原则。单一职责原则,不难理解,我相信好多人也都在用。就是单个类只负责一项功能的实现,例如前面我们的加法类,减法类等。至于好处,我想不用我多说,代码的易扩展已维护性很容易体现。开放-封闭原则可能不去了解设计模式的人不是太清楚,其实也很好理解,...原创 2019-09-19 09:29:59 · 97 阅读 · 0 评论 -
java设计模式之装饰模式
一 简介 装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。二 具体实例1.要求 实现一个人的任意打扮方式,可以任意顺序,任意方式进行组合。2.实现代码person类:人物父类public classPerson {private String name;...原创 2019-09-20 09:30:29 · 112 阅读 · 0 评论 -
java设计模式之代理模式
java学习-设计模式一、简介 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。二、代理模式-替人送礼物 需求 小明通过小张给他们班里的班花小美送礼物,追求她。 代码实现 送礼物接口类:public interface GiveGift { void giveDoll(); void giveFlower();...原创 2019-09-23 09:15:42 · 117 阅读 · 0 评论 -
java设计模式之模板方法模式
JAVA学习-设计模式一、简介 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。二、抄卷纸写答案 需求,将卷纸作为模板,每个人的卷纸都相同,只有答案唯一不同。 代码实现 模板卷纸类:public abstract class TestPaper { public voi...原创 2019-09-24 09:11:30 · 159 阅读 · 0 评论 -
java设计模式之原型模式
一 简介 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。二 实例代码 需求 完成简历的复制。 代码实现 简历类:被copy的类,需要实现Cloneable接口package com.ct.prototype;public class Resume implements Cloneable { private Str...原创 2019-09-25 09:19:04 · 137 阅读 · 0 评论 -
java设计模式之外观模式
一 简介 为子系统的一组接口提供一个一致的界面,此模式定义了高层接口,改接口使得这个子系统更加容易使用。二 实例代码-买股票怎样不会亏钱? 需求 用户通过基金买股票,无需知道具体购买股票的诸多细节。 代码实现 基金类:public class Found { private Stock1 stock1; private Stock2...原创 2019-09-26 09:12:18 · 93 阅读 · 0 评论 -
java设计模式之建造者模式
java学习-设计模式-builder模式一 简介 使得一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。二 代码实例-制作汉堡包 需求 按照约定好的流程制作不同的汉堡包 代码实现 汉堡制作接口类: 包含一些制作汉堡的流程的接口public abstract class HamburgerCreation { publ...原创 2019-09-27 09:23:50 · 114 阅读 · 0 评论 -
java设计模式之观察者模式模式
java学习-设计模式-observer模式一 定义 观察者模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。二 代码实例 需求 前台帮忙盯着老板的到来,然后通知所要通知的人,开始认真工作 代码实现 主题抽象类:public abstract class Subject { privat...原创 2019-10-09 09:55:19 · 105 阅读 · 0 评论