Java设计模式实践
丿SeeYouAgain
学无止境,不学无术。☺︎
展开
-
Java设计模式之工厂模式(Factory)实践
工厂模式定义:定义创建对象的接口,并由其子类决定实例化哪一个工厂类。 在不同条件下需要创建不同实例时,可以使用工厂模式。以下代码演示工厂模式简单的实际运用:定义一个接口ProductInterface:package com.ldl.cn.FactoryModel;public interface ProductInterface { void p...原创 2019-04-21 15:04:31 · 366 阅读 · 0 评论 -
Java设计模式之代理模式(Proxy)实践
代理模式定义:为其他对象提供一种代理以控制对这个对象的访问。 想在访问一个类时做一些控制时,可以使用代理模式。以下代码演示代理模式简单的实际运用:定义一个接口People:package com.ldl.cn.ProxyModel;public interface People { void programming();}定义类JavaP...原创 2019-05-11 16:26:17 · 336 阅读 · 0 评论 -
Java设计模式之桥接模式(Bridge)实践
桥接模式定义:将抽象部分与实现部分分离,使它们都可以独立的变化。 实现系统可能有多个角度分类,每一种角度都可能变化。此时可以使用桥接模式。以下代码演示桥接模式简单的实际运用:定义一个接口Travel:package com.ldl.cn.BridgeModel;public interface Travel { public void travel...原创 2019-05-11 16:26:56 · 509 阅读 · 0 评论 -
Java设计模式之生成器模式(Builder)实践
生成器模式定义:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 一些基本部件不会变,而其组合经常变化的时候。此时可以使用生成器模式。以下代码演示生成器模式简单的实际运用:定义一个Dinner类:package com.ldl.cn.BuilderModel;public class Dinner { private Str...原创 2019-05-11 16:27:37 · 332 阅读 · 0 评论 -
Java设计模式之责任链模式(ChainOfResponsibility)实践
责任链模式定义:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。 有多个对象可以处理同一个请求,具体哪个对象处理该请求由运行时刻自动确定。此时可以使用责任链模式。以下代码演示责任链模式简单的实际运用:定义一个抽象类Worker:package com.ldl.cn.ChainO...原创 2019-05-11 16:28:17 · 214 阅读 · 0 评论 -
Java设计模式之享元模式(Flyweight)实践
享元模式定义:运用共享技术有效地支持大量细粒度的对象。 需要减少创建对象的数量,以减少内存占用和提高性能时,可以考虑使用享元模式。以下代码演示享元模式简单的实际运用:定义一个抽象类People:package com.ldl.cn.FlyweightModel;public abstract class People { public abstra...原创 2019-05-11 16:28:53 · 326 阅读 · 0 评论 -
Java设计模式之解释器模式(Interpreter)实践
解释器模式定义:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。 如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子,此时可以使用解释器模式。以下代码演示解释器模式简单的实际运用:定义接口Expression:package com.ldl.cn.InterpreterM...原创 2019-05-11 16:29:31 · 189 阅读 · 0 评论 -
Java设计模式之中介者模式(Mediator)实践
中介者模式定义:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 想通过一个中间类来封装多个类中的行为,而又不想生成太多的子类,此时可以使用中介者模式。以下代码演示中介者模式简单的实际运用:定义一个类Taobao:package com.ldl.cn.MediatorModel;...原创 2019-05-11 16:30:17 · 193 阅读 · 0 评论 -
Java设计模式之备忘录模式(Memento)实践
备忘录模式定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 需要保存/恢复数据的相关状态场景,可以使用备忘录模式。以下代码演示备忘录模式简单的实际运用:定义一个类Memento:package com.ldl.cn.MementoModel;public class Memento { private S...原创 2019-05-11 16:30:52 · 188 阅读 · 0 评论 -
Java设计模式之原型模式(Prototype)实践
原型模式定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 在运行期需要建立和删除原型,此时可以使用原型模式。以下代码演示原型模式简单的实际运用:定义一个抽象类Ball:package com.ldl.cn.PrototypeModel;public abstract class Ball implements Cloneable{...原创 2019-05-11 16:31:27 · 252 阅读 · 0 评论 -
Java设计模式之状态模式(State)实践
状态模式定义:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。 当代码中包含大量与对象状态有关的条件语句时,可以使用状态模式。以下代码演示状态模式简单的实际运用:定义一个接口State:package com.ldl.cn.StateModel;public interface State { void doPlay(Cont...原创 2019-05-11 16:25:32 · 372 阅读 · 0 评论 -
Java设计模式之外观模式(Facade)实践
外观模式定义:为子系统中的一组接口提供一个一致的界面,使得子系统更加容易使用。 当客户端不需要知道(子)系统内部复杂联系时,可以使用外观模式。以下代码演示外观模式简单的实际运用:定义一个接口:package com.ldl.cn.FacadeModel;public interface People { void say();}分别定义Pe...原创 2019-04-24 23:10:14 · 219 阅读 · 0 评论 -
Java设计模式之适配器模式(Adapter)实践
适配器模式定义:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。 当现有对象不能满足新环境时,可以使用适配器模式。以下代码演示适配器模式简单的实际运用:定义一个目标接口:package com.ldl.cn.AdapterModel;public interface Target { void r...原创 2019-04-24 23:09:32 · 147 阅读 · 0 评论 -
Java设计模式之抽象工厂模式(AbstractFactory)实践
抽象工厂模式定义:提供一个创建一系列相互依赖对象的接口,而无需指定它们的具体类。 向客户端提供一个接口,当客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象,可以使用抽象工厂模式。以下代码演示抽象工厂模式简单的实际运用:分别定义接口ProductInterface1、ProductInterface2:package com.ldl.cn.Abst...原创 2019-04-21 15:05:12 · 221 阅读 · 0 评论 -
Java设计模式之单例模式(Singleton)实践
单例模式定义:保证一个类仅有一个实例,并提供访问它的方式。 当需要控制单一实例数或节省系统资源的时候,可以使用单例模式。以下代码演示单例模式简单的实际运用:定义一个Singleton类:package com.ldl.cn.SingletonModel;public class Singleton { private static Singlet...原创 2019-04-21 15:06:06 · 274 阅读 · 0 评论 -
Java设计模式之模板方法模式(Template)实践
模板方法模式定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结 构即可重定义该算法的某些特定步骤。 有多个子类共有一些方法,且逻辑相同,这种情况下我们可以使用模板方法模式。以下代码演示模板方法模式简单的实际运用:定义一个抽象类Train:package com.ldl.cn.TemplateModel;pub...原创 2019-04-28 23:21:15 · 336 阅读 · 0 评论 -
Java设计模式之迭代器模式(Iterator)实践
迭代器模式定义:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。 当需要为遍历不同的聚合结构提供一个统一的接口时,可以使用迭代器模式。以下代码演示迭代器模式简单的实际运用:定义一个抽象迭代器接口Iterator:package com.ldl.cn.IteratorModel;public interface Iterato...原创 2019-04-28 23:22:06 · 206 阅读 · 0 评论 -
Java设计模式之组合模式(Composite)实践
组合模式定义:将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 项目中的部分、整体场景,如树形菜单结构、文件夹管理等,可以考虑使用组合模式。以下代码演示组合模式简单的实际运用:定义一个接口Node:package com.ldl.cn.CompositeModel;public interface ...原创 2019-04-28 23:22:59 · 382 阅读 · 0 评论 -
Java设计模式之策略模式(Strategy)实践
策略模式定义:定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。 实际项目开发中,会有些类仅需要依靠行为就可以区分开来,这时候我们便可以利用封装,使用的时候按实际情况替换即可。 以下代码演示策略模式简单的实际运用:定义一个Strategy接口:package com.ldl.cn.StrategyModel;public int...原创 2019-04-20 00:23:19 · 4430 阅读 · 0 评论 -
Java设计模式之观察者模式(Observer)实践
观察者模式定义:定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。 项目中一个对象状态发生变化,若需要通知到所有依赖其的对象,则我们可以使用观察者模式。以下代码演示观察者模式简单的实际运用:定义一个Subject(主题)接口:package com.ldl.cn.ObserverModel;public ...原创 2019-04-20 00:25:15 · 174 阅读 · 0 评论 -
Java设计模式之装饰者模式(Decorator)实践
装饰者模式定义:动态地给对象添加一些额外的职责。 项目中需要扩展类而又不希望增加过多子类的情况下,可以考虑使用装饰者模式。以下代码演示装饰者模式简单的实际运用:定义一个抽象的Stationery类:package com.ldl.cn.DecoratorModel;public abstract class Stationery { String ...原创 2019-04-20 00:26:02 · 196 阅读 · 0 评论 -
Java设计模式之命令模式(Command)实践
命令模式定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 当需要通过调用者调用、接受者执行命令这样的功能时,可以使用命令模式。以下代码演示命令模式简单的实际运用:定义一个接口Command:package com.ldl.cn.CommandModel;public int...原创 2019-04-24 23:08:46 · 186 阅读 · 0 评论 -
Java设计模式之访问者模式(Visitor)实践
访问者模式定义:主要将数据结构与数据操作分离。 需要处理稳定的数据结构和易变的操作耦合问题,此时可以使用访问者模式。以下代码演示访问者模式简单的实际运用:定义一个接口GoHome:package com.ldl.cn.VisitorModel;public interface GoHome { public void use(Transport t...原创 2019-05-12 10:06:57 · 347 阅读 · 0 评论