【设计模式】
Jing-Kathy
最大的敌人是自己
展开
-
JAVA中的协变和逆变
协变逆变的概念可变性是以一种类型安全的方式,将一个对象当做另一个对象来使用。如果不能将一个类型替换成为另一个类型,那么这个类型就称之为:不变量。协变:如果某个返回的类型可以由其派生类替换,那么这个类型就是支持协变的。逆变:如果某个参数类型可以由其基类替换,那么这个类就是支持逆变的。如Function, 在这里R 作为函数的返回值, 所以这个泛型要协变, 而T用在函数的参数上所以要用逆变Function<? super Dog,? extends Animal> f1;协变如:L原创 2020-12-27 21:18:04 · 2513 阅读 · 2 评论 -
枚举实现工厂方法更简单
一般的工程方法://抽象产品interface Car{};//具体产品类class FordCar implements Car{};//具体具体产品类class BuickCar implements Car{};//工厂类class CarFactory{//生产汽车public static Car createCar(Class<? exten...原创 2019-12-08 21:28:29 · 503 阅读 · 2 评论 -
工厂方法
一般创建类的方式缺点:违背了对扩展开发,对修改关闭的原则。这时候需要我们将变化的部分和不变化的部分拆分开,也就是将实例化对象的部分从主程序中拿出来放在一个工厂类中,这样对这个项目的扩展和维护是有利的简单工厂模式定义了一个创建对象的类,由这个类封装实例化对象的行为。这样的话这个实例化对象的类,就不会再变化了,唯一变化的就是工厂类和类族了。...原创 2019-12-01 22:06:26 · 403 阅读 · 0 评论 -
简单工厂
简单工程模式需要什么,只需要传入一个正确的参数,就可以获取所需要的对象,而无需知道期实现过程public class OrderPizza {// public OrderPizza(){// Pizza pizza=null;// String ordertype;// do{// ordertype=getty...原创 2019-11-24 21:33:33 · 389 阅读 · 7 评论 -
设计模式三大类别
创建型模式简介创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。为了使软件的结构更加清晰,外界对于这些对象只需要知道它们共同的接口,而不清楚其具体的实现细节,使整个系统的设计更加符合单一职责原则。作用创建型模式在创建什么(What),由谁创建(Who),何时创建(When)等方面都为软件设计者提供了尽可能大的灵活...原创 2018-09-19 17:59:26 · 378 阅读 · 14 评论 -
设计模式的六大原则
Math block原创 2018-09-19 17:39:03 · 159 阅读 · 14 评论 -
原型模式-设计模式(C#)
原型模式原型模式(Prototype Pattern):使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式是一种对象创建型模式。原型模式的三个角色Prototype(抽象原型类):声明克隆方法的接口,是所有具体原型类的公共父类,它可是抽象类也可以是接口,甚至可以是具体实现类。ConcretePrototype(具体原型类):它实现抽象原型类中声明的克隆方法...原创 2018-09-12 17:02:46 · 284 阅读 · 8 评论 -
单例模式-设计模式(C#)
什么是单例模式 单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;售票时,一共有100张票,可有有多个窗口同时售票,但需要保证不要超售(这里的票数余量就是单例,售票涉及到多线程)。如果不是用机制对窗口对象进行唯一化将弹出多个窗口,如果这些窗...原创 2018-09-16 08:02:09 · 237 阅读 · 7 评论 -
代理模式—设计模式(C#)
代理模式基本概念及分类 代理模式——为其他对象提供一种代理,以控制对这个对象的访问。例如电脑桌面的快捷方式就是一个代理对象,快捷方式是它所引用的程序的一个代理。远程(Remote)代理:为一个位于不同的地址空间的对象提供一个局域代表对象。这个不同的地址空间可以是本电脑中,也可以在另一台电脑中。最典型的例子就是——客户端调用Web服务或WCF服务。 虚拟(Virtual)代理:根据需要创建一...原创 2018-09-09 21:26:24 · 190 阅读 · 2 评论 -
封装,继承,多态
面向对象的三个基本特征面向对象的三个基本特征是:封装、继承、多态。其中,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!对象:万物皆对象 类:类就是具有相同的属性和功能的对象的抽象的集合 实例:对象就是类的实例封装_________________________________...原创 2018-08-16 13:34:33 · 25792 阅读 · 80 评论