水边一只青蛙在笑 --石头和水 工厂方法模式(Factory Method),定义了一个用于创建对象的接口,让实现类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类. 这里在简单和工厂的基础上写工厂: 先定义一个接口 package cn.no5.factorymethod; import cn.no1.simplefactory.Operation; public interface IFactory { Operation CreateOperation(); } 再定义其子类: p…
本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/7567880.html,记录一下学习过程以备后续查用. 一.引言 接上一篇C#设计模式学习笔记:简单工厂模式(工厂方法模式前奏篇),通过简单工厂模式的了解,它的缺点就是随着需求的变化我们要不停地修改工厂里 面的方法的代码,需求变化越多,里面的if--else也越多,这样就会造成简单工厂的实现逻辑过于复杂. 依设计原则里的开闭原则--对增加代码开放,对修改代码关闭,我们不能总是这样修改简单工厂里面的方法. 下…
转载: JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)…
1.静态工厂方法: bean package com.spring.factory; public class Car { public Car(String brand) { this.brand = brand; } @Override public String toString() { return "Car [brand=" + brand + "]"; } private String brand; public void setBrand(String…
蜀道之难.难于上青天,侧身西望长咨嗟 --蜀道难 设计模式第一篇,简单工厂. 定义Operation类 package cn.no1.simplefactory; public abstract class Operation { private double numA; private double numB; public double getNumA() { return numA; } public void setNumA(double numA) { this.numA = numA…
run()与异常 不管是Threade还是Runnable的run()方法都没有定义抛出异常,也就是说一条线程内部发生的checked异常,必须也只能在内部用try-catch处理掉,不能往外抛,因为线程是一个独立运行的代码片段,它的问题不能影响到其他线程 如果run()内部抛出一个unchecked异常,这个线程可能会终止运行,这个异常也不能被主线程捕获,也影响不到其他线程的执行,比如下面的示例: package testpack; import java.io.IOException; pu…
明确是王道 --Clean Code 先定义策略类 package cn.no2.strategy; public abstract class Strategy { //省略属性 //算法方法 public abstract void algrithmInterface(); } 在定义若干策略子类 package cn.no2.strategy; public class ConcreteStrategyA extends Strategy { @Override public void a…
继承 在java中可以通过继承提高代码的复用率. 例如A继承了B,就可以是 例如,首先有一个类似Person,这个类中有有一些属性和方法,我们再新建一个Student类,其中有一部分属性和方法与Person类中的相同,这个我们就可以通过继承来提高代码复用率. package cn.hcf.pro3; public class TestExtends{ public static void main(String[] args){ Student stu = new Student(); //St…
一.方法定义 1.语法: 其中: (1) 访问修饰符:方法允许被访问的权限范围, 可以是 public.protected.private 甚至可以省略 ,其中 public 表示该方法可以被其他任何代码调用,其他几种修饰符的使用在后面章节中会详细讲解滴 (2)返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void :如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值 (3)方法名:定义的方法的名字,必须使用合法的标识符 (4) 参…
方法的所属性: 从语法的角度来看:方法必须定义在类中 方法要么属于类本身(static修饰),要么属于实例 -- 到底是属于类还是属于对象? 有无static修饰 调用方法时:必须有主调对象(主语,调用者) public class MathTest{ public static void main(String[] args){ System.out.println(Math.sin(1.57)); System.out.println(Math.sin(Math.PI/2)); } } pu…