java
叶的华尔兹
烫烫烫烫烫烫烫
展开
-
Java设计模式——工厂方法模式
工厂方法模式1.应用场景2.适用情况3.抽象工厂的结构4.工厂方法的拓展1)缺省实现2)职责委托代理1.应用场景考虑以下场景:一个文本处理工具,用户写了一部分内容,要将文本输出到一个文件中,这个文件的格式不知道,而且可能会在写文件的时候对用户的文本进行编码等处理。首先,对用户可能写的每一个文件,都要写一个文件对象,这些文件对象实现同一个接口接下来写用户部分,用户要创建相关的文件并且写入。...原创 2020-05-05 16:18:12 · 219 阅读 · 0 评论 -
Java设计模式——单例模式
单例模式单例模式用于全程只需要一个对象的情况,一般用于频繁使用的对象或创建时消耗资源比较大的对象单例模式的实现方案有多种。使用单例模式的一般操作构造方法私有化创建private static的该类的字段创建public static的getInstance()方法(得到已创建的字段)采用不同的策略创建单例中的字段1.饿汉式(静态常量)采用一个静态常量,直接创建出来publi...原创 2020-05-05 00:14:01 · 110 阅读 · 0 评论 -
设计模式七大原则——迪米特法则
迪米特法则基本内容一个对象应该对其他对象保持最少的了解一个陌生的对象应该出现则字段中,方法参数中,方法返回值中,而最好不要以局部变量的形式出现class Employee{ private String id; public void setId(String id){ this.id = id; } public String getId(){ return...原创 2020-04-27 22:00:29 · 98 阅读 · 0 评论 -
设计模式之七大原则——开闭原则
开闭原则主要内容:(提供方)扩展开放,(使用方)修改关闭尽量通过扩展实现变化,而不是修改,避免对原来的系统造成威胁例子class GraphicEditor(){ public void drawShape(Shape s){ if(s.m_type == 1){ drawRectangle(s); } else if(s.m_type == 2){ drawC...原创 2020-04-27 20:56:15 · 112 阅读 · 0 评论 -
设计模式之七大原则——里氏替换原则
里氏替换原则基本内容所有引用基类必须能透明的使用子类对象子类尽量不要重写父类方法,如果需要重写,则通过聚合、组合、依赖来解决问题在继承的过程中,可能会造成无意识的重写,在多态比频繁的时候不利于程序维护,可以采用一个更简单、更基础的接口。如果A的方法需要调用,则采用聚合、组合、依赖。...原创 2020-04-27 20:40:37 · 144 阅读 · 0 评论 -
设计模式七大原则——依赖倒转原则
依赖倒转原则内容:高层模块不应该依赖低层模块,领着都应该依赖其抽象抽象不应该依赖细节,细节应该依赖抽象面向接口原则案例:接收信息public class Main(){ public static void main(String[] args){ Person person = new Person(); person.receive(new Email()); }...原创 2020-04-27 20:09:15 · 95 阅读 · 0 评论 -
设计模式之七大原则——接口隔离原则
接口隔离原则客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小接口上考虑以上关系,其中,A只调用Interface1的operation1、operation2和operation3,B只调用Interface1的operation1 operation4和operation5,public interface Interface1 { public void...原创 2020-04-27 19:08:00 · 126 阅读 · 0 评论 -
设计模式之七大设计原则——单一职责原则
单一职责原则内容:一个类应该只负责一项职责。如果一个类负责两个不同的职责,当一个职责发生变化的时候,可能会造成另一个职责执行错误所以如果一个类A有两个职责,那么应该将这个类拆分成两个类A1,A2举例public class SingleResponding{ public static void main(String[] args){ Vehicle vehicle = new ...原创 2020-04-27 16:46:08 · 112 阅读 · 0 评论 -
Java的RTTI与反射机制
Java RTTI 与反射基础引子考虑如下问题Animal为Duck,Fish,Zebra对象的父类假设创建了一个Animal的List,其中有Duck,Fish,Zebra的实例public class CountAnimal{ public static void main(String args[]){ List<Animal> animals = Arrays...原创 2020-04-26 14:28:26 · 222 阅读 · 0 评论 -
设计规约
设计规约(Designing Specification)1.编程语言中的函数和方法方法即函数,有参数和返回值参数和返回值是否匹配,在静态检查阶段就已经完成程序是由方法搭建而成的,方法可以被独立的开发,测试和复用,使用方法的客户端(client)无需了解方法内部具体如何工作(抽象)2.规约(1)Java中的说明文档类体系结构和实现的接口直接子类类说明构造器方法列表每个方法和...翻译 2020-04-07 00:48:43 · 128 阅读 · 0 评论 -
抽象数据类型ADT
抽象数据类型 ADT0.抽象数据类型和表示独立性:理解抽象数据类型:一个数学模型和在其上定义的操作(类比OOP:对象和在对象上定义的操作)理解表示独立性:将使用和其内部表示分离开来原因:用户使用ADT时猜测其内部如何表示时很危险的事情,一旦用户猜测错误或内部实现修改,用户的意图将无法实现,从而产生Bug1.抽象和用户自定义类型比较传统类型定义和数据抽象传统类型:用户需要关注数...翻译 2020-04-01 16:26:31 · 596 阅读 · 0 评论 -
Java基础——别名引用
Java基础——别名引用1.引入2. 概念理解3.原因解释1.引入考虑如下代码public class FloatTest { public static void main(String[] args) { myFloat f1 = new myFloat(); myFloat f2 = new myFloat(); f1.num = 1.1f; f2.num = ...原创 2020-01-11 11:32:45 · 621 阅读 · 0 评论