微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发,设计,运行和运维的小应用。这些小应用之间通过服务完成交互和集成。每个小应用从前端web ui,到控制层,逻辑层,数据库访问,数据库都完全是独立的一套。在这里我们不用组件而用小应用这个词更加合适,每个小应用除了完成自身本身的业务功能外,重点就是还需要消费外部其它应用暴露的服务,同时自身也将自身的能力朝外部发布为服务。
PHP设计模式实例之(观察者模式、策略模式、简单工厂模式)
观察者模式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
<?php /** * 定义观察接口 */ interface Subject { public function Attach($Observer); //添加观察者 public function Detach($Observer); //踢出观察者 public function Notify(); //满足条件时通知观察者 public function SubjectState($Subject); //观察条件 } /** * 观察类的具体实现 */ class Boss Implements Subject { public $_action; private $_Observer; public function Attach($Observer) { $this->_Observer[] = $Observer; } public function Detach($Observer) { $ObserverKey = array_search($Observer, $this->_Observer); if($ObserverKey !== false) { unset($this->_Observer[$ObserverKey]); } } public function Notify() { foreach($this->_Observer as $value ) { $value->Update(); } } public function SubjectState($Subject) { $this->_action = $Subject; } } /** * 抽象观察者 * */ abstract class Observer { protected $_UserName; protected $_Sub; public function __construct($Name,$Sub) { $this->_UserName = $Name; $this->_Sub = $Sub; } public abstract function Update(); //接收通过方法 } /** * 观察者 */ class StockObserver extends Observer { public function __construct($name,$sub) { parent::__construct($name,$sub); } public function Update() { echo $this->_Sub->_action.$this->_UserName." 你赶快跑..."; } } $huhansan = new Boss(); //被观察者 $gongshil = new StockObserver("三毛",$huhansan); //初始化观察者 $huhansan->Attach($gongshil); //添加一个观察者 $huhansan->Attach($gongshil); //添加一个相同的观察者 $huhansan->Detach($gongshil); //踢出基中一个观察者 $huhansan->SubjectState("警察来了"); //达到满足的条件 $huhansan->Notify(); //通过所有有效的观察者 ?> |
101个设计模式
所以设计模式,实是是一种方法,一种为了解决某种或某类物定问题所使用的设计模型。据说,在编程语言方面有100多种设计模式,而在现实生活中,传说有上成千上万个模式,比如写书有写书的设计模式,写武侠的一种,言情的另一种,连官方的新闻稿件也有。
言归正传,这个站点(http://sourcemaking.com/design-patterns-and-tips)是向大家着力推荐的讲解编程方面设计模式的网站,除了GoF那经典的23个三大类的设计模式,还有N多的其它种类的设计模式。一共101个,最重要的是,它的这101个设计模式的写作模式如下:
1、模式的意图
2、要解决什么样的问题
3、模式的讨论
4、模式的结构
5、模式的业务示例
6、实现模式的Checklist
7、模式的规则
8、代码示例(包括各种语言,如:Java、C++、PHP、Delphi…)