关于简单工厂设计模式的讲解,可参考博文<设计模式: 简单工厂模式>,此处不再介绍: 我们先观察之前介绍的关于简单工厂: public class OperateFactory { public static Operation createOperate(char operate) { Operation oper = null; switch (operate) { case '+': oper = new OperationAdd(); break; case '-': oper = n
<?php //利用反射机制,简单的实现PHP插件模式 # 假设,我们有一款开源产品,所有开发者都必须在我定制的需求之上,进行二次开发, # 而开发完成后的新模块,就是一个不一样的新插件,可以放在特定的位置进行自动加载 #这是我们的开源产品 interface Demo{ # 所有插件都必须实现这个方法 public function msg(); } #这是小明开发的插件-1 class xiaoming implements Demo{ public function msg(){ echo
正常情况下,单纯的做开发是接触不到反射机制的(额,当然并不排除例外的情况了).下面我就对我学到的反射方面的知识做一个小小的总结,旨在复习和以后的查看. 原理分析: 所谓反射就是将一个类当做我们研究的对象,进行分解,获取其中的内容的过程.其核心就是Class类,他是所有类的研究的对象,基于Class我们就可以获取一个类的字节码,进而获取想要的值. 目标类(待解刨的类) package reflect; public class Person { public Person(){} private
class是反射源头,不光可以取得对象所在类信息,也可直接通过class类的方法进行对象的实例化操作. 使用关键字new为对象实例化.如果已经实例化好了class对象,就可以通过class类中提供的newInstance()操作 public T newInstance() throws InstantiationException, IllegalAccessException 来个例子: package 类集; class Person{ private String name ; // n
有一个兽人类 package com.swift.servlet; public class OrcDemo { private int hp; private int mp; private int atk; public int getHp() { return hp; } public void setHp(int hp) { this.hp = hp; } public int getMp() { return mp; } public void setMp(int mp) { this