设计模式
遥啊遥
求知若渴,虚心若愚
展开
-
设计模式:工厂模式
简单工厂简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。实现创建者和调用者的分离,用工厂方法代替、new操作 虽然某种程度不符合设计原则,但实际使用最多面向对象设计的基本原则-- OCP(开闭原则):一个软件的实体应当对扩展开放,对修改关闭-- DIP(依赖倒转原则):要针对接口编程,不要针对实现编程-- LOD(迪米特法则):要与你直接的朋友通信,而避免和...原创 2018-11-26 09:38:05 · 119 阅读 · 1 评论 -
设计模式:模板方法模式
定义一个模板结构,将具体内容延迟到子类去实现。模板方法模式是基于”继承“的;模板方法是距离我们最近,最容易理解的设计模式,它的目的是,精简代码,提高效率如,泡一杯茶的步骤是,1.准备开水 2.冲泡茶叶 3.倒入杯中 4.加柠檬,泡一杯咖啡的步骤是,1.准备开水 2.冲泡咖啡 3.倒入杯中 4.加牛奶和糖。这两种饮料的制作过程1和3是一样的,2和4是类似的,我们可以把1 3的步骤提取...原创 2019-03-28 20:57:22 · 85 阅读 · 0 评论 -
设计模式:适配器模式与外观模式
适配器模式:将一个类的接口,转化成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。适配器模式可以让类实现伪装,火鸡类可以调用鸭子类的方法,实际上还是调用自己的方法,这是因为适配器将两个不兼容的类的方法进行了转换,以下是代码来实现://这是两个不兼容的类,有自己不同的方法public interface Duck { void gagaga(); void fly(...原创 2019-03-27 21:26:27 · 139 阅读 · 0 评论 -
设计模式:命令模式
目的:任何模式的出现,都是为了解决一些特定的场景的耦合问题,以达到对修改封闭,对扩展开放的效果。命令模式也不例外,命令模式是为了解决命令的请求者和命令的实现者之间的耦合关系。解决了这种耦合的好处我认为主要有两点:1.更方便的对命令进行扩展(注意:这不是主要的优势,后面会提到)2.对多个命令的统一控制(这种控制包括但不限于:队列、撤销/恢复、记录日志等等)模式解析:经典的命令模式包括...原创 2019-03-27 10:38:27 · 146 阅读 · 0 评论 -
设计模式:装饰者模式
装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。设计原则:封装变化 多用组合,少用继承 针对接口编程,不针对实现编程 为交互对象之间的松耦合设计而努力 对扩展开放,对修改关闭。一旦你熟悉了装饰的技巧,你将能够在不修改任何底层代码的情况下,给你的(或别人的...原创 2019-03-21 17:38:53 · 96 阅读 · 0 评论 -
对java多态的理解
父类(接口) 类名 = new 子类; 这就是多态的形式,多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到...原创 2019-03-21 17:00:06 · 117 阅读 · 0 评论 -
设计模式:原型模式
所谓原型模式就是用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。原型模式主要包含如下三个角色: Prototype:抽象原型类。声明克隆自身的接口。 ConcretePrototype:具体原型类。实现克隆的具体操作。 Client:客户类。让一个原型克隆自身,从而获得一个新的对象。Object是祖宗类,所有的...原创 2018-11-27 14:49:07 · 120 阅读 · 0 评论 -
设计模式:建造者模式
-- 建造者模式的本质-- 分离了对象子组件的单独构造(由Builder来负责)和装配(由Director来负责)。从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况下使用。-- 由于实现了构建和装配的解耦。不同的构建器,相同的装配,也可以做出不同的对象;相同的构建器,不同的装配顺序也可以做出不同的对象。也就是实现了构建算法、装配算法的解耦,实现了更好的复用。实...原创 2018-11-27 11:10:41 · 97 阅读 · 0 评论 -
单例模式破解之反射
单例模式只允许一个类有一个实例对象,并且给定入口,反射的暴力破解方式不仅可以访问单例对象的私有方法,还能创建多个对象单例对象public class Singleton1 { private static Singleton1 instance = new Singleton1(); private Singleton1(){ System.out.println("hell...原创 2018-11-23 17:32:26 · 474 阅读 · 0 评论 -
设计模式:单例模式
创建性模式-- 单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式结构型模式-- 适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式行为型模式-- 模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式单例模式单例模式(Singleton Pattern)是 Java 中最简...原创 2018-11-23 14:13:25 · 106 阅读 · 0 评论 -
列举两种单例模式
在Java,一般常用在工具类的实现或创建对象需要消耗资源。懒汉模式线程不安全,延迟初始化,严格意义上不是单例模式public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstanc...原创 2019-09-26 12:44:18 · 188 阅读 · 0 评论