在写程序之前,先要设想下如何去实现。
<?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{
}