
设计模式
设计模式
一只叫狗的猫
空中楼阁
展开
-
设计模式-代理模式
定义 代理模式是给一个对象提供一个代理对象,并由代理对象控制对原对象的引用,即中介。优点 隔离作用。某些情况下,一个客户类不想或者不能直接引用一个委托对象,代理类就可以在委托类和客户类之间气到中介作用,特征是代理类和委托类实现相同的接口。 开闭原则,增加功能。我们还可以通过给代理类增加额外的功能来拓展委托类的功能,这样只需要修改代理类,不破坏委托类。代理类主要负责为委...原创 2020-02-19 20:34:04 · 141 阅读 · 0 评论 -
设计模式-桥接模式
如果一个类有多维度的属性,那么把这种多维度属性分离出来,让它们独立变化,减少它们之间耦合,就是桥接模式。示例 猫粮有不同大小的包装(大中小),猫粮还有不同的类型(鱼干、全素),包装大小和类型就是两种维度的属性,将类型这种抽离出来作为一个单独的类,然后再将包装和类型进行组合。public abstract class CatFoodAbstration { pro...原创 2020-02-19 18:12:11 · 126 阅读 · 0 评论 -
设计模式-适配器
适配器模式就是将两个不同的类串联起来,作为两个不兼容的类之间的桥梁。示例 假如宠物店有猫狗,某天狗粮吃完了,为了狗不饿晕,就需要暂时让狗吃猫粮,可是猫粮是圆形的,狗不吃就要吃方形的,为了让猫粮变成方形的就需要一个适配器。猫粮、狗粮public class Food { private String name; public String get...原创 2020-02-19 17:29:12 · 599 阅读 · 0 评论 -
设计模式-单例模式
这种模式涉及到一个类,该类负责创建自己的对象,同时确保只有一个对象被创建。这种设计模式的实现有几种方式:懒汉模式/*** @Description: 懒汉模式,线程不安全*/public class SingletonDemo { /** * 私有构造函数 */ private SingletonDemo() { } ...原创 2020-02-19 16:51:23 · 125 阅读 · 0 评论 -
设计模式-建造者模式
使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式。 示例 宠物店销售猫粮狗粮等物品时,根据购买的物品、时间、金额等因素会有不同的折扣,形成不同的套餐,这种情况下就需要物品、金额、折扣等构建成一个套餐对象。口粮类public class Food { private String name; privat...原创 2020-02-19 16:42:48 · 121 阅读 · 0 评论 -
设计模式-抽象方法模式
看抽象方法模式之前,最好看看工厂方法模式。当成品种类越来越多,并且产品有越来越多系列的时候,工厂方法模式就有点力不从心了,按照示例中动物有猫狗,猫狗下有猫粮狗粮,当要是猫吃猫粮的时候,就需要获取猫工厂、猫粮工厂,如果不小心获取到猫工厂、狗粮工厂,那么就会出错。 为了优化这个问题,当一个类别的产品有多个系列区分的时候,为了按照系列生产商品,那么就需要用抽象工厂进行区分。即将猫与口粮...原创 2020-02-19 15:54:31 · 470 阅读 · 0 评论 -
设计模式-工厂方法模式
简单工厂的缺点是当新增实例的时候,需要修改已有的代码,而且一个工厂负责了太多类的创建,不符合单一职责。 工厂方法模式将工厂方法抽象出来,成为单独的接口,然后每种类都对应一个工厂子类,当新增种类的时候,只需要新增工厂子类即可。示例产品类public class Animal { private String name;}public class C...原创 2020-02-19 15:30:58 · 103 阅读 · 0 评论 -
设计模式-简单工厂模式
简单工厂模式不属于23种设计模式,但是它是工厂模式的基础。 如果没有工厂模式,那么使用者需要使用类的时候需要自己new实例,而简单工厂模式则是用一个工厂类来负责一种对象的创建,使用者再从工厂类来获取到实例。 优点:把对象的创建跟使用分离 方便集中管理 实例变动的时候,使用者不需要修改代码示例public class Animal { privat...原创 2020-02-19 14:59:50 · 105 阅读 · 0 评论 -
设计模式
设计模式可以分为三大类创建型模式。静态工程模式、工厂方法模式、抽象工厂模式、单例模式、建造者模式 结构性模式。桥接模式、适配器模式、装饰器模式、代理模式、组合模式 行为型模式。模板方法模式、策略模式、观察者模式、责任链模式、命令模式、访问者模式六大原则开闭原则。 对外拓展开放、对内修改关闭 单一职责原则。一个类只负责一项职责 里氏替换原则。子类可以拓展父类,但是最好不要修改...原创 2020-02-19 14:29:30 · 85 阅读 · 0 评论