随笔分类 -  设计模式

摘要:一、状态模式(State) 状态模式是当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类 二、状态模式的作用 状态模式主要解决的是当控制一个对象状态转换条件表达式过于复杂时的情况。 把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。 当然,如果这个状态判 阅读全文
posted @ 2022-12-27 17:18 骚哥 阅读(63) 评论(0) 推荐(0) 编辑
摘要:1.抽象不应该依赖细节,细节应该依赖于抽象 阅读全文
posted @ 2022-11-18 16:52 骚哥 阅读(22) 评论(0) 推荐(0) 编辑
摘要:一.外观模式 1.概念 为子系统中的一组接口提供一个一致的界面 此模式定义了一个高层接口 这个接口使得这一子系统更加容易使用 他完美的体现了依赖倒转原则和迪米特法则的思想,是常用模式之一 2.何时使用 首先在设计初期阶段,应该要有意识的将不同的两个层分离(如:经典的三层架构) 经典的三层架构 就需要 阅读全文
posted @ 2022-09-15 17:49 骚哥 阅读(171) 评论(0) 推荐(0) 编辑
摘要:一、是什么 迪米特法则:也叫最少知识原则(LoD) 如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用 如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。 二、为什么 迪米特法则首要强调的前提是在类的结构设计上 每一个类都应当尽量降低成员的访问权限(私有方法 阅读全文
posted @ 2022-09-06 17:12 骚哥 阅读(94) 评论(0) 推荐(0) 编辑
摘要:一、使用场景 场景1 当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理 例如:将子类重复声明的方法提到父类去声明,利用多态性,实现了代码的复用(子类重写) 场景2 遇到由一系列步骤构成的过程需要执行,这个过程从高层次 阅读全文
posted @ 2022-08-02 17:54 骚哥 阅读(146) 评论(0) 推荐(0) 编辑
摘要:一、Java中的虚函数 普通函数就是虚函数(同等于C语言中virtual关键词修饰的方法) 虚函数的存在是为了多态 C++中普通成员函数加上virtual关键字就成为虚函数 Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑定是Java的默认行为。如果Java中不希望某个函数 阅读全文
posted @ 2022-08-02 14:05 骚哥 阅读(2520) 评论(0) 推荐(0) 编辑
摘要:一、浅复制 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都任然指向原来的对象。 二、深复制 深复制把引用对象的变量指向复制过的新对象,而不是原有的被引用对象 三、举例 产品类中有个产品明细对象,当我这里对产品类进行浅拷贝的时候,对应的产品明细对象任然指向原来的对象,地址值 阅读全文
posted @ 2022-07-28 15:17 骚哥 阅读(383) 评论(0) 推荐(0) 编辑
摘要:一、原型模式(ProtoType) 作用:用原型实例指定创建对象的种类,并且通过拷贝这些原创新的对象 白话解释:用于创建重复的对象,同时有能保证性能(这种类型的设计模式属于创建型设计模式,他提供了一种创建对象的最佳方式) 主要解决:在运行期间建立和删除原型 使用场景: 当一个系统应该独立于他的产品创 阅读全文
posted @ 2022-07-28 11:46 骚哥 阅读(348) 评论(0) 推荐(0) 编辑
摘要:1.是否违背了开放-封闭原则(简单工厂模式违背了该原则,而工厂模式没有) 2.工厂模式比简单工厂模式的功能要强且内容也比其繁琐些 3.定义(都类似于黑盒) 工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪个类,使一个类的实例化延迟到其子类 简单工厂模式(S 阅读全文
posted @ 2022-07-18 19:34 骚哥 阅读(623) 评论(0) 推荐(0) 编辑
摘要:代理模式(Proxy) 一.作用 又叫“动态代理” 为其他对象提供一种代理以控制对这个对象的访问 二.结构图 三.场景1 远程代理: 也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实 例如: 在应用程序的项目中加入一个web应用,引用一个WebService 阅读全文
posted @ 2022-07-14 17:49 骚哥 阅读(781) 评论(0) 推荐(0) 编辑
摘要:里氏代换原则 是Barbara Liskov女士在1988年发表的[ASD] 具体的数学定义比较复杂,可以查找相关资料 白话翻译 一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。 也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化 简 阅读全文
posted @ 2022-07-12 20:07 骚哥 阅读(44) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2020-09-13 15:35 骚哥 阅读(0) 评论(0) 推荐(0) 编辑
摘要:装饰模式概述 装饰模式指的是在不改变原类, 不使用继承的基础上,动态地扩展一个对象的功能。 案例演示 准备环境: 编写一个Star接口, 提供sing 和 dance抽象方法 编写一个LiuDeHua类,实现Star接口,重写抽象方法 public interface Star { public v 阅读全文
posted @ 2020-09-10 17:07 骚哥 阅读(188) 评论(0) 推荐(0) 编辑
摘要:模板模式 目标: 第一个设计模式:模板模式 步骤: 第一个设计模式:模板模式 讲解: 我们现在使用抽象类设计一个模板模式的应用, 例如在小学的时候,我们经常写作文,通常都是有模板可以套用的。 假如我现在需要定义新司机和老司机类,新司机和老司机都有开车功能,开车的步骤都一样,只是驾驶时的姿势有点不同, 阅读全文
posted @ 2020-08-28 13:23 骚哥 阅读(124) 评论(0) 推荐(0) 编辑

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