设计模式总结 Dear 丶 2022-05-26 03:19 235阅读 0赞 建造型模式: 简单工厂:常用,通过enum查找对象,调用其方法使用; 抽象工厂:未曾使用,多个工厂被封装在抽象工厂,挺复杂的; 单例:管理常用 建造者:需要生成的对象具有复杂的内部结构, 需要生成的对象内部属性本身相互依赖;(比如用于创建player、npc、pet等,每个对象都有复杂子结构,且都是object) 原型:拷贝构造,java的clone方法,之前在定义协议时使用过,初始化很多协议对象,使用时,拷贝一份; 结构型模式: 组合:部分整体结构(如,部门员工,一种聚合关系,不会有共同的生命周期),通过指针进行组件组合,增删改查管理 扩展型 装饰:对于接口扩展,可通过其他类对象扩展,也可通过自身函数指针扩展 适配:通过依赖使用某模块时,为了扩展所使用的模块,通过适配器达到扩展需求 代理:类似装饰,都是扩展自身接口,只是传递参数方法不同 桥接:对象和实现分离 享元:管理常用公有内容对象,抽离出内部状态,通过外部状态进行改变使用 关系型模式: 类之间关系型 观察者:发布、订阅场景 **外观模式:一个管理型模式** //外观模式使用 public class Demo { public static void main(String[] args) { ShapeMaker shapeMaker = new ShapeMaker(); shapeMaker.drawCircle(); shapeMaker.drawRectangle(); shapeMaker.drawSquare(); } } 通过关联关系,封装了多个对象,使用时,通过不同方法,调用不同对象达到某种效果,也可以自由组合; **装饰器和策略:** //装饰器模式 public class ShapeDecorator implements Shape { protected Shape op; public ShapeDecorator(Shape decoratedShape){ this.op = decoratedShape; } public void Extend() { } public void draw(){ op.draw(); Extend(); } } public class Demo { public static void main(String[] args) { Shape circle = new Circle(); ShapeDecorator redCircle = new RedShapeDecorator(new Circle()); ShapeDecorator redRectangle = new RedShapeDecorator(new Rectangle()); System.out.println("Circle with normal border"); circle.draw(); System.out.println("Circle of red border"); redCircle.draw(); System.out.println("Rectangle of red border"); redRectangle.draw(); } } //策略模式使用 public class Demo { public static void main(String[] args) { Context context = new Context(new OperationAdd()); System.out.println("10 + 5 = " + context.execute(10, 5)); context = new Context(new OperationSubtract()); System.out.println("10 - 5 = " + context.execute(10, 5)); context = new Context(new OperationMultiply()); System.out.println("10 * 5 = " + context.execute(10, 5)); } } 策略模式:对外提供统一访问接口,通过传入不同策略来达到不同策略; 装饰器是要解决什么问题? 我们要对现有类进行扩展,如果改原有代码,量大,不兼容强; 因此,我们需要一个装饰器,装饰原有对象,同时,仍要使用原接口展示,达到兼容扩展的效果; 相同: 都是通过关联的关系,通过外部类调用;都是继承基类(shape、operation)实现统一方法,利用多态; 不同: 解决不同的问题,装饰器模式为了兼容扩展,策略模式是为了封装策略,并用同一个接口展示; 外观和策略比较: 方法调用上,策略模式整合成一个处理方法,外观模式应用不同处理方法; 关联关系上,外观是关联多个,策略是关联一个; 外观模式有整体的概念;策略模式更加零散,更灵活; 同时策略模式,不就是多态吗,但是比多态更灵活; 使用上,我更倾向使用外观,整体好管理,结构清晰,使用上,对于c++更适用;而且我认为即使是java也应该减少new的调用; 当然,要学的是思想,使用上肯定不能这样随意的new了,要配合工厂单例了; 使用上,都应该配合简单工厂,外面套实现,区别是,提供一个方法还是多个方法,一个方法需要传参enum,多个方法无需传参;
相关 设计模式总结 设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接 超、凢脫俗/ 2022年09月23日 05:52/ 0 赞/ 23 阅读
相关 设计模式总结 1.简单工厂模式:由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现 2.策略模式:定义一系列的 旧城等待,/ 2022年08月27日 02:25/ 0 赞/ 178 阅读
相关 设计模式总结 2016-05-08 菜鸟教程 > 更详细的设计模式教程,请点击文末的“阅读原文”。 > > 设计模式教程:http://m.runoob.com/design-patt 不念不忘少年蓝@/ 2022年08月22日 04:58/ 0 赞/ 180 阅读
相关 设计模式总结 终于完完整整的把设计模式又看了一遍,这几天一直计划要写一篇总结,无奈总被这样或那样的事情打断…再消化一下,回头来把欠的债给还了。 设计模式的分类 总体来说设计模式分为三 £神魔★判官ぃ/ 2022年07月26日 01:45/ 0 赞/ 185 阅读
相关 设计模式总结 本文转自 ——[树上月][Link 1]http://www.cnblogs.com/chenssy/p/3357683.html 从七月份开始一直到九月底才看完设计模式 ゝ一世哀愁。/ 2022年07月15日 09:18/ 0 赞/ 217 阅读
相关 设计模式总结 设计模式 什么是设计模式 什么时候使用设计模式 设计模式六大原则 常见设计模式 什么是设计模式 设计模式是软件开发人员在软件开发过程中面临 青旅半醒/ 2022年05月31日 04:50/ 0 赞/ 197 阅读
相关 设计模式总结 建造型模式: 简单工厂:常用,通过enum查找对象,调用其方法使用; 抽象工厂:未曾使用,多个工厂被封装在抽象工厂,挺复杂的; 单例:管理常用 建造者:需要生成的对象具 Dear 丶/ 2022年05月26日 03:19/ 0 赞/ 236 阅读
相关 设计模式总结 从七月份开始一直到九月底才看完设计模式,在这个过程中我不敢说我已经掌握了那本书里面的内容,或者说1/5,没能力说也没有资格说。但是结果不重要,重要的是这个过程我的收获!主要包括 末蓝、/ 2022年04月14日 06:15/ 0 赞/ 231 阅读
相关 设计模式总结 从18年10月份开始学习设计模式,到19年1月底才看完,这篇博文主要总结这个过程中我的收获和一些思考。 我的收获 从刚开始接触Java就听说过设计模式,但是由于自己的 朱雀/ 2022年03月22日 12:46/ 0 赞/ 277 阅读
相关 设计模式总结 首先,可以先参考 文档: https://design-patterns.readthedocs.io/zh\_CN/latest/index.html 创建型: 川长思鸟来/ 2021年12月22日 20:55/ 0 赞/ 262 阅读
还没有评论,来说两句吧...