在寫程序以前,先要設想下如何去實現。php
<?php //默認的設計模式 //操做接口 interface INews { } //實現基本的操做 abstract class NewsAction implements INews { } //service服務 class NewsService extends NewsAction { //調用NewsModel } //面向數據庫 class NewsModel { //包含了對數據的全部操做 } //繼承了操做權限 class NewsController extends NodeController { //傳遞參數 調用NewsService }
//定義了組合產品 基本信息+內容(文章內容、圖片集、具體的專題信息) 面向操做 而不是數據庫 interface IProduct { function base(); //基本信息 function content(); //內容 function extend(); //擴展信息 function all(); //獲取組合信息 } interface IProductAction{ function add(); function remove(); function save(); function get(); } Abstract class Product implements IProductAction{} //對信息進行劃分 interface info{}//模型接口 class Base implements info{}//基本信息實現 class Content implements info{}//基本內容實現 發現內容不一樣 還須要從新架構 class Extend implements info{}//擴展信息實現 class Article extends Content{}//文章內容 class Image extends Content{}//圖片內容 class Special extends Content{}//專題內容 //組合產品 class ArticlueProduct implements IProduct{} class ImageProduct implements IProduct{} class SpecialProduct implements IProduct{} //有了產品 須要抽工廠方法(無非是對組合產品的添加和刪除操做,查詢) 相似service interface IFactory{ function add(); function save(); function remove(); function get(); } class FactoryService implements IFactory{ }