Thinking in java-21 单例模式和委托模式
来源:互联网 发布:经典都市小说知乎 编辑:程序博客网 时间:2024/06/05 04:58
1.单例模式 Singleton Pattern
对于class的修饰符只有2种,public和default。我们不能把class设置为private,但我们可以将一个类的构造函数设置为private。
public class Singleton{ private Singleton(){ } private final static Singleton INSTANCE = new Singleton(); public static Singleton getInstance(){ return INSTANCE; } public void foo(){ //code here... }} //We can call foo() this way Singleton.getInstance().foo();
2.委托模式 Delegation Pattern
public class SpaceShipControls{ void up(int velocity){} void down(int velocity){} void left(int velocity){} void down(int velocity){} void forward(int velocity){} void back(int velocity){} void turboBoost(){}}//One way to build a spaceship is to use inheritance.public class SpaceShip extends SpaceShipControls{ private String name; public SpaceShip(String name) { this.name = name; } public static void main(String[] args) { SpaceShip spaceShip = new SpaceShip("NSEA Protector"); spaceShip.forward(100); }}
上面代码块实际上是说不通的,因为SpaceShip ‘is-a’ SpaceShipControls 不成立。更确切的方式是:SpaceShip contains SpaceShipControls。
public class SpaceShipDelegation{ private String name; private SpaceShipControls controls = new SpaceShipControls(); public SpaceShipDelegation(String name) { this.name = name; } //delegated methods: public void up(int velocity) { controls.up(velocity); } public void down(int velocity) { controls.down(velocity); } public void left(int velocity) { controls.left(velocity); } public void right(int velocity) { controls.right(velocity); } public void forward(int velocity) { controls.forward(velocity); } public void back(int velocity) { controls.back(velocity); } public void turboBoost() { controls.turboBoost(); } public void main(String[] args) { SpaceShipDelegation protector = new SpaceShipDelegation("NSEA Protector"); protector.forward(100); }}
阅读全文
0 0
- Thinking in java-21 单例模式和委托模式
- 单例模式和委托模式
- 第十章 单例模式和委托模式
- OC中的单例模式和委托模式
- OC中的单例模式和委托模式
- OC中的单例模式和委托模式
- OC学习日记014-单例模式和委托模式
- Thinking in java 工厂模式的学习
- Oc单例模式,委托模式
- java 单例模式和工厂模式
- Java设计模式—单例模式和模板模式
- Thinking in java-8 单继承和多态
- Thinking in java学习笔记2--适配器模式
- thinking in java中出现的设计模式代码例子
- java模式--单例模式
- Java单例模式和关键字
- java单例模式
- Java单例模式
- windows文件价共享设置
- delphi 入门之《动态创建菜单》
- ACM程序设计节课总结
- CLR via C#读书笔记
- FJ的字符串
- Thinking in java-21 单例模式和委托模式
- Warp-CTC
- My97DatePicker时间控件的引用
- linux 流编辑器(stream editer)sed 用法
- 《高性能MySql》学习笔记 持续更新
- JQUERY实现下拉菜单
- ARP协议(ARP脚本抓取主机MAC的实现)
- JavaBean & super & this
- Android实现webview